my @sorted = map { $_->[2] } sort{ $b->[0] <=> $a->[0] || $a->[1] <=> $b->[1] } map { [ (split '\s+', $file[$_])[2] eq 'blahblah', $_, $file[$_] ] } 0 .. $#file;