# Note: Read Schwartzian Transforms from bottom-up,
# it makes it easier to understand that way.
@sorted =
# And finally map back to the original array.
# [3,['CCI003','1','N']] -> ['CCI003','1','N'].
map { $_->[1] }
# Sort by the numeric component we just extracted
sort { $a->[0] <=> $b->[0] }
# Map onto an array consisting of the numeric component
# of the first part.
# ['CCI003','1','N'] -> [3,['CCI003','1','N'].
map { [ $_->[0]=~/(\d+)/, $_] }
# Take the initial array
@array;
Update: Fixed bad formatting. |