Programming

Perl Display And Pass Command Line Arguments With @argv

steloflute 2012. 6. 8. 10:12

http://www.cyberciti.biz/faq/howto-pass-perl-command-line-arguments/

 

How do I read or display command-line arguments with Perl?

Perl command line arguments stored in the special array called @ARGV.

ARGV example

Use $ARGV[n] to display argument.

Use $#ARGV to get total number of passed argument to a perl script.

For example, if your scriptname is foo.pl:

./foo.pl one two three

You can print one, two, three command line arguments with print command:

 
print "$ARGV[0]\n";
print "$ARGV[1]\n";
print "$ARGV[2]\n";
 

Or just use a loop to display all command line args:

 
#!/usr/bin/perl -w
if ($#ARGV != 2 ) {
	print "usage: mycal number1 op number2\neg: mycal 5 + 3 OR mycal 5 - 2\n";
	exit;
}
$n1=$ARGV[0];
$op=$ARGV[1];
$n2=$ARGV[2];
$ans=0;
if ( $op eq "+" ) {
	$ans = $n1 + $n2;
}
elsif ( $op eq "-"){
	$ans = $n1 - $n2;
}
elsif ( $op eq "/"){
	$ans = $n1 / $n2;
}
elsif ( $op eq "*"){
	$ans = $n1 * $n2;
}
else {
	print "Error: op must be +, -, *, / only\n";
	exit;
}
print "$ans\n";

Save and run script as follows:
$ chmod +x mycal.pl
$ ./mycal.pl
$ ./mycal.pl 5 + 3
$ ./mycal.pl 5 \* 3

Note: * need to be escaped under UNIX shell.

Page last updated at 1:47 AM, January 7, 2012.