#
# arrofarr.pl  
#
# test: array of (anon) arrays
#
# 051024

use strict;

my @arr = ();
my $rarr = \@arr ;
my @jobs  = ("Schreiber","Author");
my $rjobs  =  \@jobs;

push ( @arr, ["Adalbert","Stifter", $rjobs ]);
push ( @arr, ["Hermann", "Hesse",   $rjobs ]);

print @arr . ", ";
print @arr[0] . ", ";
print $arr[0] . "\n";

# 4 mal Adalbert
print $arr  [0]  [0] . ", ";
# print @arr[0]  [0] . ", ";   # err
print @arr  [0]->[0] . ", ";
print @arr->[0]  [0] . ", ";
print @arr->[0]->[0] . "\n";

print @arr->[0]->[1] . ", ";
print @arr->[1]->[0] . ", " if exists @arr->[1]->[0] ;
print @arr->[1]->[0] . ", " if defined @arr->[1]->[0] ;
print @arr->[1]->[1] . "\n";
print @arr->[2]->[0] . ", " if exists @arr->[2]->[0] ;
print @arr->[2]->[0] . "\n" if defined @arr->[2]->[0] ;

print ${@arr  [0]->[2]}[0] . ", ";
print ${@arr->[0]  [2]}[0] . ", ";
print ${@arr->[0]->[2]}[0] . "\n";

 # print $arr->[0][2] . ", ";    # err
 # print $arr->[0]->[2] . ", ";  # err
print ${@arr->[0][2]} [0] . ", ";
print ${$arr  [0][2]} [1] . "\n";
print $arr    [0][2]->[1] . "\n";

print "\n--------\njetzt mit Referenz:\n\n";
print @{$rarr} . ", ";
print @{$rarr}[0] . "\n";

# 4 mal Adalbert
print ${$rarr}  [0]  [0] . ", ";
print ${$rarr}  [0]->[0] . ", ";
print @{$rarr}->[0]  [0] . ", ";
print @{$rarr}->[0]->[0] . "\n";

print @{$rarr}->[0]->[1] . ", ";
print @{$rarr}->[1]->[0] . ", " if exists @arr->[1]->[0] ;
print @{$rarr}->[1]->[1] . "\n";
print @{$rarr}->[2]->[0] . "\n" if exists @arr->[2]->[0] ;

print ${@{$rarr}->[0]  [2]}[0] . ", ", 
      ${@{$rarr}  [0]->[2]}[0] . ", ",
      ${@{$rarr}->[0]->[2]}[0] . "\n";

 # print ${@{$rarr}[0][2]} . ", ";   # err
print ${@{$rarr}  [0]->[2]}[0], ", ", 
      ${@{$rarr}->[0]  [2]}[0], "\n";

print ${@{$rarr}->[0]->[2]} [1], ", ", 
      @{$rarr}  ->[0]->[2]->[1], ", ", 
      @$rarr    ->[0]->[2]->[1], ", ",
      @$rarr    ->[0]  [2]  [1], ", ",
      $rarr     ->[0]  [2]  [1], "\n";

print @{$rarr   ->[0]  [2]}    , "\n";

__END__

2, ARRAY(0x177f124), ARRAY(0x177f124)
Adalbert, Adalbert, Adalbert, Adalbert
Stifter, Hermann, Hermann, Hesse
Schreiber, Schreiber, Schreiber
Schreiber, Author
Author

--------
jetzt mit Referenz:

3, ARRAY(0x177f124)
Adalbert, Adalbert, Adalbert, Adalbert
Stifter, Hermann, Hesse
Schreiber, Schreiber, Schreiber
Schreiber, Schreiber
Author, Author, Author, Author, Author
SchreiberAuthor
