use Getopt::Long;
GetOptions(
'user=s' => \$user,
'password=s' => \$pass,
forms => sub { push( @actions, \&dump_forms ); },
links => sub { push( @actions, \&dump_links ); },
images => sub { push( @actions, \&dump_images ); },
all => sub { push( @actions, \&dump_forms, \&dump_links, \&dump_images ); },
absolute => \$absolute,
'agent=s' => \$agent,
'agent-alias=s' => \$agent_alias,
help => sub { pod2usage(1); },
) or pod2usage(2);
####
use strict;
use warnings;
use Getopt::Long;
my ($user, $pass, $absolute, $agent, $agent_alias, $forms );
my @actions;
GetOptions(
'user=s' => \$user,
'password=s' => \$pass,
forms => sub { push( @actions, \&dump_forms ); },
links => sub { push( @actions, \&dump_links ); },
images => sub { push( @actions, \&dump_images ); },
all => sub { push( @actions, \&dump_forms, \&dump_links, \&dump_images ); },
absolute => \$absolute,
'agent=s' => \$agent,
'agent-alias=s' => \$agent_alias,
help => sub { pod2usage(1); },
) or pod2usage(2);
print "$user\n";
print "$pass\n";
$actions[dump_forms()];
sub dump_forms {
my @vars = @_;
print "@vars\n";
print "we're now in dump_forms\n";}
####
$ ./mygetopt3.pl --user fred --password password --forms a
Useless use of array element in void context at ./mygetopt3.pl line 35.
fred
password
we're now in dump_forms