i know that this is not an answer regarding autovivification, but i think this comment establishes a point.
i think the problem is the approach you are choosing, if you are using numbers as hash keys, you should use an array (or an anonymous array reference) to store the hashes:
(untested)
my @questions = (
{ foo => 'bar' },
{ foo => 'bar' },
{ foo => 'bar' }
);
and get the values using a more natural loop:
foreach $hashref (@questions){
my $foo = $hashref->{foo} || "daklfjsdalk";
}
or
for(my $i = 0;$i<=$#questions;$i++){
my $foo = $questions[$i]->{foo} || "daklfjsdalk";
}
i know that this does not solve the issue, but sometimes different approaches can eliminate ambiguities on the code and the data results
i hope this would be useful
ignorance, the plague is everywhere
--guttermouth