in reply to Usage message, and App::Cronjob
I don't understand the process of generating the usage message...
The usage message is being generated in G::L::D::describe_options(), line 362:
$usage->die unless GetOptions(\%return, grep { length } @specs);
when the call to GetOptions() has determined that there's something wrong with the arguments (like being called without an argument, in your case).
The $usage object is a blessed subroutine reference, constructed somewhat further up like this (simplified):
my $usage = bless sub { my ($as_string) = @_; ... return $buffer if $as_string; } => "Getopt::Long::Descriptive::Usage";
The object's die() method is then calling the text() method that you mentioned
sub die { my $self = shift; my $arg = shift || {}; die( join( "", grep { defined } $arg->{pre_text}, $self->text, $arg->{post_text +}, ) ); }
passing it $self, which is the function reference blessed into G::L::D::Usage. In other words, the shift->(1) in
sub text { shift->(1) }
is a function call which is being passed 1 as argument. That argument sets the $as_string flag, which controls whether the message is being returned as a string or printed to STDERR.
Does that help?
That said, I'm not exactly sure why you're expecting that calling App::Cronjob with no arguments, would allow you to follow how App::Cronjob was working...
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Usage message, and App::Cronjob
by Anonymous Monk on Jun 12, 2009 at 00:03 UTC | |
by Anonymous Monk on Jun 12, 2009 at 01:31 UTC |