in reply to How's your Perl?

Here's a new solution for question 3a. This is not strict in the sense that you have to turn off strict for the set-up code to work. However, the actual test \$foo->[1] == \$foo->{1} runs under strict, unlike in my original symbolic ref solution.

I think that this solution differs from all the solutions given so far, so I submit it even though this puzzle is now quite old.