- my $who = join ', ', grep defined, $opts{author}, $email, $opts{url};
- $who = " ($who)" if length $who;
- $opts{banner} = $opts{desc} . $who;
+ unless (defined $opts{tag}) {
+ $opts{tag} = ($caller =~ /([^:]*):*$/) ? $1 : 'UNKNOWN';
+ }
+ unless (defined $opts{name}) {
+ $opts{name} = $opts{tag};
+ }
+ unless (defined $opts{desc}) {
+ $opts{desc} = $opts{name};
+ }
+ unless (defined $opts{version}) {
+ my $version = do { no strict 'refs'; ${$caller.'::VERSION'} };
+ $version = '0.01' unless defined $version;
+ $opts{version} = $version;
+ }
+ unless (defined $opts{banner}) {
+ my $author = defined $opts{author} ? $opts{author} : 'unknown hacker';
+ my $email = defined $opts{email} ? "<$opts{email}>" : undef;
+ my $who = join ', ', grep defined, $email, $opts{url};
+ $who = " ($who)" if length $who;
+ $opts{banner} = $opts{desc} . " by $author$who";
+ }