use Modern::Perl; use Parse::Range qw(parse_range); say join ' ', sort {$a <=> $b} parse_range('1-2a,27,150b-170,51d2,670-675, 12, 90-97, 99-95'); #### 12 27 90 91 92 93 94 95 96 97 98 99 670 671 672 673 674 675 #### non-numeric range: '1-2a' at c:/Data/strawberry/perl/site/lib/Parse/Range.pm line 54. non-numeric range: '150b-170' at c:/Data/strawberry/perl/site/lib/Parse/Range.pm line 54. non-numeric range: '51d2' at c:/Data/strawberry/perl/site/lib/Parse/Range.pm line 54.