use strict; use warnings; my @datas; # for (){ # push @datas, [ m/<(\d+),(\d+)>/ ]; # } @datas = sort { $a->[0] <=> $b->[0] || $a->[1] <=> $b->[1] } map { [ m/<(\d+),(\d+)>/ ] } ; use Data::Dumper; print Dumper \@datas; __DATA__ <7,22> <12,20> <7,15> <1,5> <7,10>