Server IP : 51.89.169.208 / Your IP : 52.14.244.195 Web Server : Apache System : Linux ns3209505.ip-198-244-202.eu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Tue Nov 5 04:50:16 EST 2024 x86_64 User : yellowleaf ( 1019) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/usr/share/doc/perl-Getopt-Long/examples/ |
Upload File : |
#!/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";