#!/usr/bin/perl -w use strict; my @sorted = map {$_->[0]} sort { $a->[0] cmp $b->[0] || $b->[1] <=> $a->[1] } map {[ $_ ,/(\w+)\s+(\w+)\s+(\w+)/]} ; print for @sorted; __END__ 2 4 a 1 9 b 6 8 a