use Set::IntSpan; my $span = Set::IntSpan->new('1-4,9,16,22-24,30,35'); print join "," => $span->elements();