#!/usr/bin/perl use strict; use warnings; my $text = ' ,,, 1,3, , ,5-7,,0011,0015-19-22,A12q,ΓΌ,, - ,'; print join ",", @{ &_text_to_list($text) }; sub _text_to_list # { my $string = shift; my ( @list, %hash ); $string =~ s/\s+//g; @list = split( ',', $string ); @list = map { # /^(\d+)-(\d+)$/ ? ( $1 .. $2 ) : # /^0*(\d+)$/ ? ($1) : # () } @list; %hash = map { $_ => 1 } @list; @list = sort { $a <=> $b } keys %hash; return \@list; }