$s = '1-5,6a-e,7,10-13'; @s = split ( ',', $s ); for (@s) { if (/(\d+)-(\d+)/) { $tmp = ''; for ( $1 .. $2 ) { $tmp .= "$_ "; } $_ = $tmp; } } print "@s"; # 1 2 3 4 5 6a-e 7 10 11 12 13 #### ($_='kkvvttuubbooppuuiiffssqqffssmmiibbddllffss') =~y~b-v~a-z~s; print