if (ref($item) =~ /HASH/) {} #### print "Array in Array: ", @{$item}, "\n"; ... print "Hash in Array: ", %{$item}, "\n"; #### #!/usr/bin/perl -w use strict; $, = " "; my %Volume_Info = ( alpha => [ 0, 512, 1048576, 1, { one => 'first_hash' }, [ 'two', 'first_array' ], { three => 'second_hash' }, -1, 0, 0, 0, 0, 0, 'zfod', 0 ], beta => [ 1, 2, 3, { four => 'third_hash' }, 2, 1 ] ); for my $vol_key ( sort keys %Volume_Info ) { print "\nVolume: $vol_key\n"; foreach my $item ( @{ $Volume_Info{$vol_key}} ) { if (ref($item) =~ /ARRAY/) { print "Array in Array item: ", @{$item}, "\n"; } elsif (ref($item) =~ /HASH/) { print "Hash in Array: ", %{$item}, "\n"; } else { print "Array Item: $item \n"; } } } #### Volume: alpha Array Item: 0 Array Item: 512 Array Item: 1048576 Array Item: 1 Hash in Array: one first_hash Array in Array item: two first_array Hash in Array: three second_hash Array Item: -1 Array Item: 0 Array Item: 0 Array Item: 0 Array Item: 0 Array Item: 0 Array Item: zfod Array Item: 0 Volume: beta Array Item: 1 Array Item: 2 Array Item: 3 Hash in Array: four third_hash Array Item: 2 Array Item: 1