Arguments are the values you pass to a Perl script. Each value on the command line after the 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 of the currently running program is stored in the 0ドル variable. Let's try some examples working with arguments and other special variables. Create an executable 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.pl 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 the number of arguments, but I lied--sort of. Since the arguments are numbered starting at zero, you have to add one to the value of $#ARGV to get the actual number of arguments. It's a bit weird, but if you're a fan of the C language, it'll all seem quite normal.
Also note that the @ARGV variable doesn't start with a dollar sign. That's because it's an 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 for more study on your own.
Previous Lesson: Perl Variables
Next Lesson: Perl Logic
Popular Linux Topics
Linux IntroLinux Tutorial
Who is Doctor Bob?Linux Basics
Living in a ShellLinux Files
The Linux File SystemLinux Commands
Important Linux CommandsLinux Editors
The Vi EditorLinux Data Manipulation
Slicing & DicingLinux Shell Programming
Linux Shell ScriptsPerl Programming
Perl BasicsLinux and Email
Sending EmailCompression and Encoding
Linux File CompressionLinux Does DOS
Accesing DOS FilesManaging Linux
Updating Your Linux System