in reply to Switch CLI Parsing Question

Check out
Set::IntRange - Sets of Integers
This class lets you dynamically create sets of arbitrary intervals of integers and perform all the basic operations for sets on them (for a list of available methods and operators, see above).
or
Set::IntSpan - Manages sets of integers
"Set::IntSpan" manages sets of integers. It is optimized for sets that have long runs of consecutive integers. These arise, for example, in .newsrc files, which maintain lists of articles:
alt.foo: 1-21,28,31 alt.bar: 1-14192,14194,14196-14221
Some of this is mentioned in
Representing Sets in Perl