in reply to A smart way to handle @ARGV

Take a look at the PM Getopts::Std. It is designed to do exactly what you are looking for.