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 $_ }