Had you been using warnings, Perl would have given you some hints that might have been enlightening:
c:\@Work\Perl\monks>perl -wMstrict -le
"my @array_of_hashes;
for (my $i=1; $i<=10; $i++) {
$array_of_hashes[$i] = (
stuff => 'stuffy',
goes => 'gooey',
here => \"more $i\"
);
$array_of_hashes[$i]{sub_data}[6] = \"seven\";
}
"
Useless use of a constant (stuff) in void context at -e line 1.
Useless use of a constant (stuffy) in void context at -e line 1.
Useless use of a constant (goes) in void context at -e line 1.
Useless use of a constant (gooey) in void context at -e line 1.
Useless use of a constant (here) in void context at -e line 1.
Can't use string ("more 1") as a HASH ref while "strict refs" in use a
+t -e line 1.