Over the course of the next few pages, I will introduce you to one of the more interesting modules in the Perl pantheon, the Getopt::Long.pm module. This module provides a simple API to parse options passed to your Perl scripts at the command line and convert them into Perl scalars or arrays.
It is interesting to note that the equality symbol (=) sign between the option name and the data type specifier tells Getopt::Long.pm that an option value *must* be provided for the option. Look what happens if, for example, you specify the "--age" option without a corresponding integer value:
$ ./script.pl --age Option age requires an argument
In order to make an option value optional (try saying that fast!), use a colon (:) instead of an equality symbol (=), as below:
Here, in the absence of a value for the option, Getopt::Long.pm will automatically assign 0 (for integer values) or an empty string (for string values) to the corresponding option variable. Take a look at the output of the script above to verify this: