my @sorted = map{ $_->[0] } sort {$a->[1] cmp $b->[1]} map { m/(.*?)\s*(\S+)$/; [$_, "$2 $1" ] } @unsorted; #### my @output = map { $_->[1] } sort { $a->[0] cmp $b->[1] } map { [$_, expensive_func($_)] } @input;