In this chapter, you will see a feature that makes Perl one of the world’s truly great programming languages—hashes. Although hashes are a powerful and useful feature, you may have used other powerful languages for years without ever hearing of hashes. But you’ll use hashes in nearly every Perl program you write from now on; they’re that important.
A hash is a data structure, not unlike an array in that it can hold any number of values and retrieve them at will. But instead of indexing the values by number, as you did with arrays, you look up hash values by name. That is, the indices, called keys, aren’t numbers, but instead they are arbitrary, unique strings (see Figure 6-1).
Hash keys are strings, first of all, so instead of getting element
3 from an array, you access
the hash element named
These keys are arbitrary strings—you can use any string expression
for a hash key. And they are unique strings—just as there’s only one
array element numbered
only one hash element named
Another way to think of a hash is that it’s like a barrel of data,
where each piece of data has a tag attached. You can reach into the
barrel and pull out any tag and see what piece of data is attached. But
there’s no “first” item in the barrel; it’s just a jumble. In an array,
you start with element
1, then element
2, and so on. But in a hash there’s no fixed order, no first element. It’s just a collection of key-value ...