in reply to Questions about using array-of-arrays

take one "row" of my array-of-arrays and copy it to a separate array:
@SeparateArray = @{ MyAoA[$i] };
@SeparateArray = @{ $MyAoA[$i] };
copy my separate array into a row of my array-of-arrays
@{ $MyAoA[$i] } = [ @SeparateArray ];
$MyAoA[$i] = \@SeparateArray ;
copy an entire array-of-arrays (and not just have references to the first one)
push @new_array,[@$_] foreach @old_array or @new_array = map {[@$_]} @old_array
(note, this last one only works for AoA, not for AoAoA and deeper. For that situation, it may be easier to use Storable's dclone method)

Clint

Replies are listed 'Best First'.
Re^2: Questions about using array-of-arrays
by polettix (Vicar) on Jul 26, 2007 at 13:04 UTC
    copy my separate array into a row of my array-of-arrays
    I'd point explicitly out that there is a difference between taking a reference and copying the data within the array:
    # Here, changes in @SeparateArray will be "seen" in # $MyAoA[$i] too $MyAoA[$i] = \@SeparateArray; pop @SeparateArray; # $MyAoA[$i] affected, too # Here, $MyAoA[$i] and @SeparateArray are somewhat # independent, even if they may share common elements $MyAoA[$i] = [ @SeparateArray ]; pop @SeparateArray; # no change to $MyAoA[$i]
    This is something that remains somewhat "implicit" in your answer, e.g. when you talk about how to copy an entire array-of-arrays.

    Flavio
    perl -ple'$_=reverse' <<<ti.xittelop@oivalf

    Don't fool yourself.