use strict; use warnings; $" = ', '; my @datas; #- parse input for (){ my @entries = m/<(\d+),(\d+)>/; push @datas, [@entries]; } #- sort @datas=sort sort_test @datas; #- output use Data::Dumper; print Dumper \@datas; sub sort_test() { if ($a->[0] < $b->[0]) { return -1; }elsif ($a->[0] > $b->[0]){ return 1 }else { if ($a->[1] > $b->[1]) { return -1; } elsif ($a->[1] < $b->[1]) { return 1; } else { return 0; } } } __DATA__ <12,20> <1,5> <7,10> <7,12> <7,15>