use Class::Struct ; struct works => { 'element' => '%' , 'test' => '@' , 'level' => '$' , }; $test1 = works -> new (); %aa = ( 't1' => 'aaaa' , 't2' => 'bbbb' ); $test1->element(\%aa);