You could generalize this a bit further and eliminate the $i variable (one less thing to worry about):
but I'm not sure this is really an improvement WRT clarity and maintainability! unshift or splice could be used to stuff the new element at other offsets in the array. The "pure index" version is even more obscure:c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my @multi_array = ([ 99, 88 ], [ 77, 66 ], [ 55, 44 ], ); ;; push @{ $multi_array[$_] }, $_ for 0 .. $#multi_array; dd \@multi_array; " [[99, 88, 0], [77, 66, 1], [55, 44, 2]]
c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my @multi_array = ([ 99, 88 ], [ 77, 66 ], [ 55, 44 ], ); ;; $multi_array[$_][ @{$multi_array[$_]} ] = $_ for 0 .. $#multi_array; dd \@multi_array; " [[99, 88, 0], [77, 66, 1], [55, 44, 2]]
Give a man a fish: <%-{-{-{-<
In reply to Re^3: adding an index column to a csv data file
by AnomalousMonk
in thread adding an index column to a multi-array derived from a csv data file
by ng0177
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |