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