Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Answer: How do you use command line parameters?

( #187864=categorized answer: print w/ replies, xml ) Need Help??

Q&A > input and output > How do you use command line parameters? contributed by DigitalKitty

Hi.
The easiest way is to use the Getopt::Std module ( it is part of the standard distribution ). Here is a sample program.
#!/usr/bin/perl -w use strict; use Getopt::Std; use vars qw( $opt_s $opt_r $opt_n ); if( ! getopts('srn' ) ) { die "Usage: filename.pl -srn filename\n"; #Example: perl myfile.pl -r test.txt } my @file = <>; if( $opt_s ) { @file = sort { $a cmp $b } @file; } if( $opt_r ) { @file = reverse @file; } if( $opt_n ) { @file = sort { $a <=> $b } @file; }

Each command-line switch is assigned to its respective scalar variable ( $opt_s, etc. ) and if it exists, its individual value is 1.
You can also use multiple switches:
$perl myfile.pl -rn test.txt # Reverse the contents of test.txt and perform # a numeric sort on it.

# Sample runs: C:\perl>perl pg8.pl -r test.txt third line. second line. first line. C:\perl> C:\perl>perl pg8.pl -n test.txt 2 33 33 44 48 55 889 990 C:\perl> C:\perl>perl pg8.pl -c test.txt Unknown option: c Usage: filename.pl -srn filename C:\perl>

In the last example, I hadn't declared an $opt_c in the line 'use vars qw ( $opt_s ... );' or an if() statement to handle it. This is why I received the message.

Hope this helps,
-Katie.

Comment on Answer: How do you use command line parameters?
Select or Download Code
Log In?
Username:
Password:

What's my password?
Create A New User
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (7)
As of 2015-07-06 08:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (70 votes), past polls