use warnings; use strict; #use autodie; use Data::Dumper; my $hr = { qw/hk1 hv1 hk2 hv2/ }; my $ar = [ { qw/ak11 av11 ak12 av12/ }, { qw/ak21 av21 ak22 av22/ } ]; foreach (@$ar) { warn Dumper $_ } foreach (@{ ref $hr eq q/HASH/ ? [ $hr ] : $hr }) { warn Dumper $_ } #### $ perl tst.pl $VAR1 = { 'ak12' => 'av12', 'ak11' => 'av11' }; $VAR1 = { 'ak22' => 'av22', 'ak21' => 'av21' }; $VAR1 = { 'hk2' => 'hv2', 'hk1' => 'hv1' };