How do I read command-line arguments with Perl?

Summary: A quick tip on how to read Perl command line arguments.

When you're writing a Perl script, command-line arguments are stored in the array named @ARGV.

$ARGV[0] contains the first argument, $ARGV[1] contains the second argument, etc.

$#ARGV is the subscript of the last element of the @ARGV array, so the number of arguments on the command line is $#ARGV + 1.

A Perl command line arguments example

Here's a simple program that prints the number of command-line arguments it's given, and the values of the arguments:

#!/usr/bin/perl
#---------------------#
#  PROGRAM:  argv.pl  #
#---------------------#

$numArgs = $#ARGV + 1;
print "thanks, you gave me $numArgs command-line arguments.\n";

foreach $argnum (0 .. $#ARGV) 
{
  print "$ARGV[$argnum]\n";
}

If you run this program from a Unix command-line like this

./argv.pl 1 2 3 4

or, from a DOS command-line like this

perl argv.pl 1 2 3 4

you'll get this result:

thanks, you gave me 4 command-line arguments.
1
2
3
4

Perl command line arguments - Summary

I hope this tip on how to read Perl command line arguments has been helpful. As you can see, the key is knowing about the @ARGV array, and then knowing how to work with Perl arrays in general.