use strict;
use warnings;

my $scal = "Hello";
my @arry = ( 1, 2, 3);
my %hash = ("1" => "eins", 
            "2" => "zwei", 
            "3" => "drei", 
           );
         
dumpit(\$scal);
dumpit(\@arry);
dumpit(\%hash);

# Ausgabe von Skalar, Array oder Hash
# Parameter ist eine Referenz           
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"; 
    }  
  }