#
# refs.prl
#
# demonstriert Referenzen: Skalar, Array, Hash

use strict;

# SCALAR
my ($rscalar, $scalar) ;
$scalar = "Esther";
$rscalar = \$scalar;
print \$scalar, ", $scalar; $rscalar, $$rscalar\n\n";

# ARRAY
my ($rarr, @arr);
@arr = ( "Esther", "Harry");
$rarr = \@arr;
print \@arr, ", @arr; $rarr, @$rarr; @$rarr[0], $rarr->[1]\n";
my $anon_arr = [ "Maria", "Joseph" ];
print "\$anon_arr: $anon_arr, @$anon_arr\n\n";


# HASH
my ($rhash, %hash);
%hash = ( "Name1", "Esther");
$hash{ Name2 } = "Harry";
$rhash = \%hash;
print \%hash, "; ", %hash, ";\n$rhash, ", %$rhash, ";\n" .
      "Name1: ", $$rhash{"Name1"}, ", Name2: ", $rhash->{Name2}, ";\n";
my $anon_hash = { "Name3" => "Maria", "Name4" => "Joseph" };
print "\$anon_hash: $anon_hash, ", %$anon_hash, "\n\n";

# REF      
printf ("%s,  %s,  %s\n\n", ref($rscalar), ref($rarr), ref($rhash));
     
# CODE
# \&code, &$code_ref

=output

SCALAR(0xff9494a4), Esther; SCALAR(0xff9494a4), Esther

ARRAY(0xff9495ac), Esther Harry; ARRAY(0xff9495ac), Esther Harry; Esther, Harry
$anon_arr: ARRAY(0xff955c98), Maria Joseph

HASH(0xff95de6c); Name1EstherName2Harry;
HASH(0xff95de6c), Name1EstherName2Harry;
Name1: Esther, Name2: Harry;
$anon_hash: HASH(0xff955cd4), Name3MariaName4Joseph

SCALAR,  ARRAY,  HASH

=cut output

