[PDD] Add docs for the Parrot_PMC_push_* and Parrot_PMC_pop_* functions
[parrot.git] / examples / tutorial / 33_hashes.pir
blob74517cdd6f623035bb36d05d400437e2fa630514
1 # Copyright (C) 2007-2009, Parrot Foundation.
2 # $Id$
4 =head1 Associative Arrays
6 Associative arrays, also known in some places as "dictionaries" or
7 "hashes" are like ordered arrays except they are indexed by strings
8 instead of integers. Parrot has a dedicated Hash PMC, and a number of
9 other PMCs that implement the associative array interface as well.
11 Associative arryas are indexed using C<[ ]> square brackets with a
12 string inside them.
14 Ordered arrays are often homogeneous structures where all elements in
15 the array are of the same type. This is why Parrot has types like
16 "FixedIntegerArray" and "ResizableStringArray", which only contain
17 integers or strings respectively. Associative arrays are often
18 heterogeneous, where each element may be a different type.
20 =cut
22 .sub main :main
24     .local pmc myhash
25     myhash = new ['Hash']
27     myhash['foo'] = 5
28     myhash['bar'] = "Hello"
30     $I0 = myhash['foo']
31     print $I0
32     print "\n"
34     $P0 = myhash['foo']
35     $S0 = typeof $P0
36     say $S0
38     $P1 = myhash['bar']
39     $S1 = typeof $P1
40     say $S1
42 .end
44 # Local Variables:
45 #   mode: pir
46 #   fill-column: 100
47 # End:
48 # vim: expandtab shiftwidth=4 ft=pir: