http://www.perlmonks.org?node_id=487317


in reply to Re: Sort - can't
in thread Sort - can't

I think that you are actually having trouble with spliting, not so much with the sorting. split acts on a scalar at a time. I'm guessing that you want something more like this:

my @split_arr = map { [ split /_/, $_, 3 ] } @array; my @sorted = sort { $a->[2] <=> $b->[2] } @split_arr;

Or more verbosely:

my @split_arr; for ( @array ) { my @split_elem = split /_/, $_, 3; push @split_arr, \@split_elem; } my @sorted = sort { $a->[2] <=> $b->[2] } @split_arr;

Update: changed my guess at what you want from string sort to numeric sort.