perl -lE '@f=map { ($l,$h)=split/\.\./;$h//=$l;($l..$h)} split/,/,$ARGV[0]; for ($i=0;$i<=$#f;$i++){print "$i -> $f[$i]"}' 1,5,7..10,15,17..19,22 0 -> 1 1 -> 5 2 -> 7 3 -> 8 4 -> 9 5 -> 10 6 -> 15 7 -> 17 8 -> 18 9 -> 19 10 -> 22