### EZ way: use Getopt::Mixed; Getopt::Mixed::getOptions qw( help h>help file f>file list=i l>list ); print "$opt_help, $opt_file, $opt_list"; ### 'Harder' way (more flexible, but you have more to write): use Getopt::Mixed "nextOption"; Getopt::Mixed::init qw( help h>help file f>file id=i i>id ); my ($opt_id, $opt_file, $opt_help); while (($option, $value, $pretty) = nextOption()) { if ($option eq 'id') { $opt_id = $value; } elsif ($option eq 'help') { # etc. } }