my @unsorted; while () { my @fields = m/([0-9]+)/g; @fields == 3 and push @unsorted, \@fields; } my @sorted = sort { $a->[2] <=> $b->[2] } @unsorted;