use strict;
use warnings;

my %h1 = ( name => "Bobo", 
           gender => "male"
         );
my %h2 = ( name => "Bibo", 
           gender => "male"
         );
my %h3 = ( name => "Bibi", 
           gender => "female"
         );

my @AvH = (\%h1, \%h2, \%h3);

for my $elem (@AvH)
  { dumpit($elem); }


sub dumpit 
  {
  my $ref = shift;
  if(ref($ref) eq 'HASH')
    {
    print "HASH:\n";
    foreach (sort (keys %{$ref}))
      { print "\t $_ => $ref->{$_}\n"; }
    }
  elsif(ref($ref) eq 'ARRAY')
    {
    print "ARRAY:\n";
    for my $i (0 .. @{$ref}-1)
      { print "\t $i: $ref->[$i]\n"; }
    }
  else
    { 
    print "SKALAR:\n";
    print "\t ${$ref}\n"; 
    }  
  }
