page p1 { question 4B { label { Do you like your pie with ice cream? } single { 1 Yes 2 No } } question 4C { label { Do you like your pie with whipped cream? } single { 1 Yes 2 No } } } #### 1. Block Type -- (word) (optional:word) { (nested patterns) } 2. String Type -- (string) #### my $nestedhash = { type => page, name => p1, contains => [ <-one or more $nestedhash structures-> <-or, one or more simple scalars (for the strings)-> ], };