my @getoptions_args = keys %test; my %opts = map { (my $o = $_) =~ s/[=:|\!].*$//; $o => $test{$_} } @getoptions_args; GetOptions(\%opts, @getoptions_args); %test = %opts; #### $cmdlineparser->accept( 'option1=s' => { default => sub { # derive some default }, validate => sub { # validate @_ is ok. }, help => 'Option1 does blah blah blah fooseball', }, );