in reply to Re^2: manipulating a data table
in thread manipulating a data table

To see what structure the first loop creates, use
use Data::Dumper; print Dumper(\@input);

You'll get the following output:

$VAR1 = [ [ 'a', '23', '11' ], [ 'b', '24', '15' ], [ 'c', '16', '19' ], [ 'd', '8', '2' ], [ 'e', '40', '41' ] ];

The map line

my @output = map [ $_->[0] ], @input;

creates the output, it maps each element of @input to a reference to a new array containing its first element, i.e.

$VAR1 = [ [ 'a' ], [ 'b' ], [ 'c' ], [ 'd' ], [ 'e' ] ];

The last cited line sorts the array indices (that represent input line numbers) by $c-th element (reversed), and than sets $c-th element of the output to be the order number. Thus, the first iteration processes the second column:

$VAR1 = [ [ 'a', 3 ], [ 'b', 2 ], [ 'c', 4 ], [ 'd', 5 ], [ 'e', 1 ] ];

and the second one the next one:

$VAR1 = [ [ 'a', 3, 4 ], [ 'b', 2, 3 ], [ 'c', 4, 2 ], [ 'd', 5, 5 ], [ 'e', 1, 1 ] ];

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,