my @names_marks = ("cliff 76", "john 52", "keith 90", "rob 52"); my @sorted_names = map { $_->[0] } sort { $b->[1] <=> $a->[1] } map { [$_, (split(/ /, $_))[1] ] } @names_marks;