Another possibility would be to preprocess @ARGV and prefix "--" to any keywords you want to recognize (e.g. turn update into --update) then pass it to Getopt::Long and let it do all the work.
Update: Changed my example keyword to match original sample invocation.
In reply to Re^2: Mixing command line arguments
by Fletch
in thread Mixing command line arguments
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |