If a scalar is the "singular" in Perl, as we described it at the beginning of Chapter 2, the "plural" in Perl is represented by lists and arrays.
A list is an ordered collection of scalars. An array is a variable that contains a list. In Perl, the two terms are often used as if they're interchangeable. But, to be accurate, the list is the data, and the array is the variable. You can have a list value that isn't in an array, but every array variable holds a list, though that list may be empty. Figure 3-1 represents a list, whether it's stored in an array or not.
Figure 3-1. A list with five elements
Each element of an array or list is a separate scalar variable with an independent scalar value. These values are ordered, that is, they have a particular sequence from the first to the last element. The elements of an array or list are indexed by small integers starting at zero[*] and counting by ones, so the first element of any array or list is always element zero.
Since each element is an independent scalar value, a list or array may hold numbers, strings, undef values, or any mixture of different scalar values. Nevertheless, it's most common to have all elements of the same type, such as a list of book titles (all strings) or a list of cosines (all numbers).
Arrays and lists can have any number of elements. The smallest one has no elements, and the largest can fill all of the available memory. Once again, this is in keeping with Perl's philosophy of "no unnecessary limits."