`$hash := hash expression expression`

This command takes two arguments: an expression computing a key from a given node (1st argument) and a node-set (2nd argument). For each node in the node-set, the key value is computed and the node is stored under the given key in the resulting hash. For a given key, the value stored in the hash table is a node-list consisting of all nodes for which the 1st expression evaluated to an object string-wise equal to the key. It is therefore possible to index more than one node under the same key.

The XPath function
`xsh:lookup(varname,key)`

can
be used to retrieve values from hashes in XPath expressions.

**Example 32. Index books by author**

my $books_by_author := hash concat(author/firstname," ",author/surname) //book;

**Example 33. Lookup books by Jack London.**

ls { $books_by_author->{'Jack London'} }; ls xsh:lookup('books_by_author','Jack London');