Perl的參數討論

Arguments and Other Special Variables

Arguments are the values you pass to a Perl script. Each value on the command line afterthe name of the script will be assigned to the special variables $ARGV[0], $ARGV[1],$ARGV[2], and so on. The number of arguments passed to the script is stored in the$#ARGV variable, and the full argument string is in the variable @ARGV. The name ofthe currently running program is stored in the $0 variable.

Let's try some examples working with arguments and other special variables. Create anexecutable script called testvars.pl containing these lines:

#!/usr/bin/perl
print "My name is $0 \n";
print "First arg is: $ARGV[0] \n";
print "Second arg is: $ARGV[1] \n";
print "Third arg is: $ARGV[2] \n";
$num = $#ARGV + 1; print "How many args? $num \n";
print "The full argument string was: @ARGV \n";

Now if you run this script, here's what you'll see:

$ ./testvars dogs can whistle
My name is testvars.pl
First arg is: dogs
Second arg is: can
Third arg is: whistle
How many args? 3
The full argument string was: dogs can whistle

Just a few notes about that example. I did say that the $#ARGV variable contained thenumber of arguments, but I lied--sort of. Since the arguments are numbered starting atzero, you have to add one to the value of $#ARGV to get the actual number ofarguments. It's a bit weird, but if you're a fan of the C language, it'll all seem quitenormal.

Also note that the @ARGV variable doesn't start with a dollar sign. That's because it'san array variable, as opposed to the regular scalar variables we've worked with so far.An array can be thought of as a list of values, where each value is addressed by a scalar(dollar sign) variable and an index number in square brackets, as in $ARGV[0],$ARGV[1], and so on. Don't worry too much about arrays for now--that's a topic formore study on your own.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章