/
usr
/
share
/
doc
/
perl-Getopt-Long
/
examples
/
/usr/share/doc/perl-Getopt-Long/examples
mkdir
upload
Name
Size
Mode
Actions
parsetime.pl
1218
0644
edit
dl
rm
README
322
0644
edit
dl
rm
skel1.pl
2018
0644
edit
dl
rm
skel2.pl
2617
0644
edit
dl
rm
skel3.pl
2584
0644
edit
dl
rm
skel4.pl
2821
0644
edit
dl
rm
Edit:
/usr/share/doc/perl-Getopt-Long/examples/parsetime.pl
(1218B)
#!/usr/bin/perl # This is a (working) example of how to write a helper routine for # Getopt::Long to deal with specific cases. # # The basic principle is: # - specify the option type to be string # - specify a code reference to handle the parsing an assignment. # # This example parses time specifications in the form HH:MM:SS.mmm, where # unneeded parts may be left out. use strict; use warnings; use Getopt::Long; # The helper routine. It will be called to handle the actual delivery # of the option value. # There are two parameters: the option name, and the value to be # assigned. # Note the use of 'die' to signal errors back to Getopt::Long. sub parsetime { my ($opt_name, $opt_value) = @_; my $val = 0; unless ( $opt_value =~ / ^ # beginning of value string (?:(\d+):)? # hours (?:(\d+):)? # minutes (\d+(?:\.\d+)?) # seconds + fraction $ # end of value string /x ) { die("Value \"$opt_value\" invalid for option $opt_name\n"); } # Return the value. ( defined $1 ? 3600*$1 : 0) + ( defined $2 ? 60*$2 : 0) + $3; } @ARGV = ("-time", "1:24.14") unless @ARGV; my $time; GetOptions("time=s" => sub { $time = &parsetime }) && print "time = $time seconds\n";
Save
cmd:
run