$VAR1 = ( # top level look at next item to see if array or hash FOO=>{ # Key: top level is hash. { means next is hash too BAR=>{ # another hash BAZ=>[ # square bracket starts an array { BIM=>1 }, # slot 0 contains a hash { BIM=>5 }, # slot 1 also contains a hash 'GEORGE', # slot 2 holds a string [3,6,9] # slot 3 holds an array }, }, }, FOE=>[ # FOE is key for an array ['a','b','c'], # slot 0 holds another array {FUM=>'FIE'}, # slot 1 holds a hash ], ); say $H{FOO}{BAR}{BAZ}[0]{BIM}; # should show 1 say $H{FOO}{BAR}{BAZ}[2]; # should show GEORGE say $H{FOO}{BAR}{BAZ}[3][1]; # should show 6 say $H{FOE}[0][2]; # should show c say $H{FOE}[1]{FUM}; # should show FIE