Beware of that code!
With that code you push the reference in $AoA[0] to @AoA2 (let's say it is stored at $AoA2[0]).
So if you change the data referenced by $AoA2[0] you will change the data also for @AoA1, because they ($AoA1[0] and $AoA2[0]) share the reference to the same data!
It may be that that is you desired behaviour, but it may be not...
#!/usr/bin/perl
# vi:ts=4 sw=4 et:
use strict;
use warnings;
use Data::Dumper;
my @AoA1 = (
[ 1, 2, 3 ],
[ qw( a b c ) ],
);
my @AoA2 = ();
$AoA2[0] = $AoA1[0];
# change the '1' in AoA2
$AoA2[0]->[0] = 0;
# check stored reference
print "\$AoA1[0]", $AoA1[0], $/;
print "\$AoA2[0]", $AoA2[0], $/;
# look what happened! AoA1 is changed!
print Dumper \@AoA1;
|