Copy the text below and run it as a Perl script.
# ASSIGNING HASH VALUES # # hash tables consist of key/value pairs; they are kept # internallyas a list in which every key is followed by a value; # therefore, values can be assigned to hash tables as an # even-numbered list %states = ("Sacramento", "California", "Madison", "Wisconsin", "Albany", "New York"); # another notation is more explicit about the relationship # of key and value; it uses the => operator to identify the # key to the left, and the value to the right; if the => operator # encounters bare words in key positions, they will be automatically # quoted (note "New York", however, which consists of two words # and MUST be quoted) %capitals = (California => "Sacramento", Wisconsin => "Madison" , "New York" => "Albany"); print "1. ACCESSING INDIVIDUAL HASH ELEMENTS\n\n"; # accessing an individual value of a hash is similar # to accessing array elements: the variable name is prefix # with the $ symbol, then the quoted keyword is add in # curly braces { } print "Sacramento is the capital of: " . $states{"Sacramento"} . "\n\n"; # If the hash variable appears within a quoted string, # the key must be in single quotes print "The capital of New York is: $capitals{'New York'}\n\n"; # -------------------------------------------------------- # print "2. PROCESSING EVERY ELEMENT OF A HASH TABLE\n\n"; # the keys() and values() functions take a hash as # an argument and return an array of all keys or # values, respectively @myKeys = keys(%capitals); print "\%capitals\' keys are:\n"; for ($i = 0; $i < @myKeys; ++$i) { print "$myKeys[$i]" . "\n"; } print "\n"; # values() returns the all values of the hash table # with no association to keys @myVals = values(%capitals); print "\%capitals\' values are:\n"; for ($i = 0; $i < @myVals; ++$i) { print "$myVals[$i]" . "\n"; } print "\n"; # with the keys array, it is possible to iterate # of every key in the hash and retrieve its value @myKeys = keys(%capitals); # the foreach loop iterates over each element of # of the @myKeys array; the control variable $element # is the array element of the current iteration print "using each key of \%capitals to retrieve values:\n\n"; foreach $element (@myKeys) { print "$element\'s capital is " . $capitals{$element} . ".\n"; } print "\n\n"; # -------------------------------------------------------- # print "3. DELETING KEYS FROM A HASH\n\n"; # the delete() function takes a scalar value as # an argument, deletes the key and returns the # deleted value, provided the key existed # in the hash $deleted = delete($states{'Albany'}); print "deleted from \%states: $deleted\n\n"; @myKeys = keys(%states); print "hash \%states now contains: "; foreach $element (@myKeys) { print "$element / " . $states{$element} . " "; } print "\n\n"; # -------------------------------------------------------- # print "4. TESTING IF A KEY EXISTS\n\n"; # the exists() function takes hash key, # $hash{$key}, as an argument and tests # whether the hash has a corresponding # key; it returns a 'true' of 'false' # value that can be used in a conditional # statement print "looking for \'$deleted\'\n\n"; if (exists($states{$deleted})) { print "$deleted exists\n\n"; } else { print "$deleted has wiped from the face of the earth!\n\n"; } # -------------------------------------------------------- # print "5. ADDING A NEW VALUE\n\n"; # adding new key/value pairs to the # hash is straight forward: simply # assing a value to a key $states{"Providence"} = 'Rhode Island'; print "hash \%states now contains: "; foreach $element (keys(%states)) { print "$element / " . $states{$element} . " "; } print "\n\n";