Just to add the comment that even if you arent using a hash, you can have default values witrh Getopt::Long - heres a snippet from some code I'm writing right now
...
use Getopt::Long;
use Pod::Usage;
...
GetOptions(
'd|dir=s' => \( my $outDir = '.' ),
'f|file=s' => \( my $inFile ),
'l|log=s' => \( my $logFile = './tu_log.conf' ),
);
unless ( $inFile ) {
pod2usage( -exitval => 1, -output => \*STDERR );
}
...
__END__
=pod
=head1 NAME
Retail_PickList_Generator.pl - generate picklists for outstanding
+Retail orders.
=head1 SYNOPSIS
Retail_PickList_Generator.pl --file <incoming retail order file> [
+--log <log config file> --dir <directory to write picklists to>]
=cut
With the defaults, I only need supply the inward file name. And I get more specialised behaviour by passing in --dir or --log as required...
...it is better to be approximately right than precisely wrong. - Warren Buffet