($sub1, $sub2, $sub3) = split (/\_/, @array,3); #### while my $elem (@array) { ($sub1,$sub2,$sub3) = split(/_/, $elem, 3); # do something here... } #### $sub3 = sort { $b <=> $a } $sub3; #### my @a2; while my $elem (@array) { my @fields = split(/_/, $elem, 3); push @a2, \@fields; } my @a3 = sort { $b->[2] <=> $a->[2]} @a2;