use strict; use warnings; print map { $_->[0] . "\n"; } sort { $a->[1] cmp $b->[1] } map { chomp; [$_, /\d+\s+([a-zA-Z]+)/]; } ; __DATA__ 1 Charlie 1 Edward 2 Bob 2 Alfred 3 Barry