A.7 HashesA hash (also called an associative array) is a collection of zero or more pairs of scalar values, called keys and values. The values are indexed by the keys. An array variable begins with the % sign followed by a legal variable name. For instance, possible hash variable names are: %hash1 You can assign a value to a key with a simple assignment statement. For example, say you have a hash called %baseball_stadiums and a key Phillies to which you want to assign the value Citizens Bank Park. This statement accomplishes the assignment: $baseball_stadiums{'Phillies'} = 'Citizens State Bank'; Note that a single hash value is referenced by a $ instead of a % at the beginning of the hash name; this is similar to the way you reference individual array values using a $ instead of a @.You can assign several keys and values to a hash by placing their scalar values in a list separated by commas and surrounded by a pair of parentheses. Each successive pair of scalars becomes a key and a value in the hash. For instance, you can assign a hash the empty list: %hash = ( ); You can also assign one or more scalar key/value pairs: %genes_by_name = ('gene1', 'AACCCGGTTGGTT', 'gene2', 'CCTTTCGGAAGGTC'); There is an another way to do the same thing, which makes the key/value pairs more readily apparent. This accomplishes the same thing as the preceding example: %genes_by_name = ( To get the value associated with a particular key, precede the hash name with a $ and follow it with a pair of curly braces containing the scalar value of the key: $genes_by_name{'gene1'} This returns the value 'AACCCGGTTGGTT', given the value previously assigned to the key 'gene1' in the hash %genes_by_name. Figure A-2 shows a hash with three keys. Figure A-2. Schematic of a hashYou can get an array of all the keys in a hash with the operator "keys", and you can get an array of all the values in a hash with the operator "values".The arrays you get won't be sorted. Here's an example: %h = ( 'one' => 'for the money', gives the output: three one two to get ready for the money for the show.You can make a reference to a hash by preceding it with a backslash; you dereference it by preceding the reference with a percent sign % for the entire hash or with an extra dollar sign $ for an individual value of some hash key: %h = ( 'one' => 'for the money', gives the output: HASH(0x811d1e0) You can also define a hash as an anonymous hash. An anonymous hash isn't saved in a named hash variable; it's a reference to hash data, and can only be saved in a reference. It is initialized within curly brackets: $anonhash = { 'one' => 'first', gives the (unsorted) output: key = three value = third |