Questions about this topic? Sign up to ask in the talk tab.

Difference between revisions of "Perl/Basics/User Input/Command Line/Getopt::Std"

From NetSec
Jump to: navigation, search
(Created page with "====Getopt::Std==== This requires Getopt::Std. The perldoc is [http://perldoc.perl.org/Getopt/Std.html here].")
 
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
====Getopt::Std====
 
 
This requires Getopt::Std.  The perldoc is [http://perldoc.perl.org/Getopt/Std.html here].
 
This requires Getopt::Std.  The perldoc is [http://perldoc.perl.org/Getopt/Std.html here].
 +
=====Code=====
 +
{{:Perl/Basics/User_Input/Command_Line/Getopt::Std/Code}}
 +
=====Analysis=====
 +
{{:Perl/Basics/User_Input/Command_Line/Getopt::Std/Analysis}}

Latest revision as of 01:39, 19 July 2012

This requires Getopt::Std. The perldoc is here.

Code
 
use strict;
use warnings;
use Getopt::Std;
 
my %opts;
getopts('m:b',\%opts);
 
print $opts{m} . "\n";
print "The boolean -b option was set!\n" if defined $opts{b};
print "The boolean -b option was not set!\n" if undef $opts{b};
 
Analysis

The getopts() function takes a string of flags to parse as well as a hash reference. You can execute the script as follows:

 perl script.pl -m "hello" -b
 perl script.pl -m "hello"

In the above example, we see the line:

 getopts('m:b',\%opts);

The 'm:b', the first argument to the function, designates what command line arguments to parse. The colon after the 'm' specifies that it takes an additional parameter, in this case, the message to say. The -b does not have a colon; we are using it to demonstrate a flag that does not require an additional parameter.

The second argument is a hash reference to designate where the return data is stored; in this case, $opts{m} contains "hello" and opts{b} is either defined or undefined based on whether or not it was present in the flags when the script was executed.