my @sorted_values = map { $_->[0] } sort { $a->[2] cmp $b->[2] || $a->[1] cmp $b->[1] } map { my ($x, $y) = /\w+:\s(\w+),\s\w+:\s(\w+)/; [ $_, $x, $y ] } @strings;