4th Floor, 4 Tabernacle Street London EC2A 4LU

Pass Parameters to Perl Script

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 and you called script as follows:

./foo.pl one two three

You can print one, two, three command line arguments with print command:
[perl] print “$ARGV[$0]\n”;
print “$ARGV[$1]\n”;
print “$ARGV[$2]\n”;
[/perl]  

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

[perl] #!/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”;
[/perl]

Save and run script as follows:

[bash] $ chmod +x mycal.pl
$ ./mycal.pl
$ ./mycal.pl 5 + 3
$ ./mycal.pl 5 \* 3
[/bash]

Note: * need to be escaped under UNIX shell.