Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

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

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,

Comment on Answer: How do you use command line parameters?
Select or Download Code
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 browsing the Monastery: (2)
As of 2015-11-28 11:38 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (741 votes), past polls