[PDD] Add docs for the Parrot_PMC_push_* and Parrot_PMC_pop_* functions
[parrot.git] / examples / tutorial / 34_multikey.pir
bloba3cec9f3d4703d899e5638c791b8e814d40196ba
1 # Copyright (C) 2007-2009, Parrot Foundation.
2 # $Id$
4 =head1 Multi-Level Keys
6 Hashes and arrays can be combined in a number of ways to
7 make interesting and complex data structures. A hash may
8 contain an array PMC, which in turn can contain other arrays
9 or hashes. In these cases, the keys for each level can be
10 combined together to form a single unique key for a data
11 element in the structure.
13 This technique works equally well for arrays-of-arrays,
14 hashes-of-hashes, and combination structures as well.
16 =cut
18 .sub main :main
20     .local pmc myhash, innerarray
21     myhash  = new ['Hash']
22     innerarray = new ['ResizableIntegerArray']
24     $I0 = 2
25     innerarray[2] = 42
26     myhash["answer"] = innerarray
28     $I0 = myhash["answer";$I0]        # $i = $hash{"answer"}[2]
29     print $I0
30     print "\n"
32 .end
34 # Local Variables:
35 #   mode: pir
36 #   fill-column: 100
37 # End:
38 # vim: expandtab shiftwidth=4 ft=pir: