Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Answer: How do you use command line parameters?

by DigitalKitty (Parson)
on Aug 05, 2002 at 23:39 UTC ( #187864=categorized answer: print w/replies, xml ) Need Help??

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

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: -srn filename\n"; #Example: perl -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 -rn test.txt # Reverse the contents of test.txt and perform # a numeric sort on it.

# Sample runs: C:\perl>perl -r test.txt third line. second line. first line. C:\perl> C:\perl>perl -n test.txt 2 33 33 44 48 55 889 990 C:\perl> C:\perl>perl -c test.txt Unknown option: c Usage: -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,

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (11)
As of 2016-10-28 14:01 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (383 votes). Check out past polls.