in reply to How do I return a hash from Parse::RecDescent?

You convert an AoH into an H in P::RD the same way you would anywhere else. Convert each hash into a list, combine the lists, and create a hash from the combined list.

test: expr(s) /^\Z/ { { map %$_, @{$item{"expr(s)"}} } }

That's a lot of curlies X_X

Update: Changed map { %$_ } to map %$_, to remove a pair of curlies.