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.
GuildensternNegaterd character class uber alles!