in reply to Parsing commandline with subcommands
#!/usr/bin/perl use strict; use Getopt::Long; my $subcmd; my $global_option; my $subcmd_option; GetOptions("global" => \$global_option, "<>" => sub { my($arg) = @_; if ($arg =~ m{^-}) { die "usage error: unhandled option $arg detected in + global option section"; } elsif ($arg !~ m{^(subcmd1|subcmd2)$}) { die "usage error: invalid subcommand $arg"; } else { $subcmd = $arg; die "!FINISH"; } }) or die "usage error (in global option section)"; GetOptions("subcmd" => \$subcmd_option) or die "usage error (in subcmd option section)"; print <<EOF; global_option: $global_option subcmd: $subcmd subcmd_option: $subcmd_option leftover: @ARGV EOF __END__
|
|---|