in reply to Getopt Behavior

Here's an example from some code that I've written. This will allow the user to specify multiple IP addresses without having to use the command line switch multiple times.
use Getopt::Long; GetOptions("i:s",\@ignored_IPs);

This lets me say "-i 1.1.1.1 2.2.2.2" etc and all of the IPs are stored in the @ignored_IPs array. AFAIK, only Getopt::Long does this.

Update: After taking a better look at your code, it looks like all you really should have to do is make your variable name that will hold the options into a reference.

Guildenstern
Negaterd character class uber alles!