use Getopt::Long;
sub get_options {
my $def = shift;
my $cur = {};
$cur->{$_->[0]} = $_->[2] for @$def;
my @def = map {$_->[0].$_->[1]} @$def;
GetOptions( $cur, @def );
return $cur;
}
my $defaults = [
[ debug => '' => 0 ],
[ help => '' => 0 ],
[ interactive => '' => 0 ],
[ host => '=s' => '999.999.999' ],
[ username => '=s' => 'username' ],
[ home => '=s' => $ENV{HOME} ],
# ...
];
my $opt = get_options( $defaults );
# if ( $opt->{help} ) { ... }
# foo( $opt->{host} );
####
sub debug {
my $msg = shift;
writeLog( $msg ) if $opt->{debug};
}
sub timestamp {
my $when = shift || time;
my ( $sec, $min, ... ) = localtime( $when );
# ...
return $stamp;
}
####
# ...
my @k = ( 'Status', 'Time Stamp', 'Value', 'Error Message' );
my $h = $HoHoHoA{$line_number_being_processed};
$one_line_summary = $h->{shift(@k)} . 'No Error. ';
$one_line_summary .= $h->{$_} . '. ' for @k;
$one_line_summary .= "$j.";
####
my @k = qw/ status time_stamp value error_message /;