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...
In reply to Re: Usage message, and App::Cronjob
by almut
in thread Usage message, and App::Cronjob
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |