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