What I've found *really* helpful for this is the module Getopt::Std, which comes with base perl. However, for your needs, it sounds like you may want to look at Getopt::Long, or even Getopt::Regex.
The modules allow you to specify what command line arguments are allowed, their types, and does some other pretty fancy stuff if you need it.
Comment on Re: How can I stop ARGV from globbing all over the place?