You don't need a slice if you're sorting the array reference members of @sortarr by a particular set of elements. Assuming numeric values, hence <=> comparisons,

@sortarr = sort { $a->[3] <=> $b->[3] } @sortarr;
If you want to sort on several columns, test in your desired order with logical-or between,
@sortarr = sort { $a->[6] <=> $b->[6] || $a->[7] <=> $b->[7] || $a->[8] <=> $b->[8] || $a->[9] <=> $b->[9] || $a->[10] <=> $b->[10] || $a->[11] <=> $b->[11]; } @sortarr;
Most of that is rarely executed because of the short circuit property of logical or. Looking up values by index is cheaper than copying out a 2-d slice sorting it and correlating the result to the original.

If you do ever need slicing and other ops on deep arrays, see the great PDL module.

After Compline,
Zaxo


In reply to Re: Creating a Slice through a 2 dimensional array by Zaxo
in thread Creating a Slice through a 2 dimensional array by felonius

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":