Be careful about thinking that @ARGV is the number of members in the array. It can have a variety of meanings. Unless you are certain you understand the notion of context in Perl and how it affects the interpretation of @SOME_ARRAY it is best to be very explicit and use scalar @SOME_ARRAY instead. This will always be the number of members, whereas @SOME_ARRAY can have a variety of meanings depending on context.
Here is a brief summary of the different sigals and contexts that affect arrays in Perl:
However, if you were to use Perl's option to change the starting index of arrays and set the starting index to 100 instead of 0, then it would always be 99 greater than the number of elements in the array!
By the way, in case you are motivated to look up how to change the starting index, don't. Changing the starting index is not a good idea. It was in vogue several years ago until people discovered all the problems it caused.
Here are some examples of different contexts:
In reply to Re: ARGV behaviour in getopts std
by ELISHEVA
in thread ARGV behaviour in getopts std
by perl_mystery
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |