Is there a good reason you don't just use Getopt::Std or Getopt::Long, and then require that multiword input get quoted? e.g.
my_script.pl -a one -b 'two words' -c 'three words here' my_script.pl -a 'two words' -b oneword -c 'four words here now'
This would seem to be more in line with *NIX tradition.
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.