# The following was supposedly scribed by
# Johan Vromans
# on Friday 25 June 2004 03:00 am:
>This will have a nasty side effect, as shown below:
>
>� $ round --round=42 --help
>� usage: �round <filename>
>� options: �--round <float> � (default �42)
Yes, this is correct. But I was planning something more along these lines:
use Getopt::Long;
my $all = 7;
my $foo = "bar";
my @opt_build = (
['a|all=i', \$all, "value for all (default $all)"],
['f|foo=s', \$foo, "string for foo (default $foo)"],
['h|help' , sub { usage()}, "show this help message"],
);
my %opts = map({$_->[0] => $_->[1]} @opt_build);
my @help = map({"$_->[0] $_->[2]"} @opt_build);
GetOptions(%opts);
sub usage {
my $caller = $0;
$caller =~ s#.*/##;
die join("\n", "usage:", " $caller <file>", @help), "\n";
}
END
And, in my mythical modified version of perldoc, I'd need to run up to the
point where @help is declared, then exit.
Maybe instead of 'my @help=', we do 'Pod::Dynamic->usage(map({"$_->[0]
$_->[2]"} @opt_build));' and that triggers an exit from the 'do()' (for
instance when ($0 =~ m/perldoc/)), and declares main::usage() otherwise.
Something along those lines anyway.
--Eric
--
Peer's Law: The solution to the problem changes the problem.