Ответ Эрика Строма в основном показывает, что вы правы ... но я удивлен, что никто не предлагал использовать Data :: Dumper для проверки структур данных, с которыми вы работаете. Вы действительно можете увидеть разницу между тем, что вы сделали, и исправлением Эрика. Это может помочь вам разобраться.
Re: использовать предупреждения ... вы должны получить предупреждение при попытке напечатать несуществующий элемент вновь созданного массива? Однажды мне сказали никогда не спрашивать в Интернете, пока я не использую строгие предупреждения. Это может быть немного экстремально, но -w и Data :: Dumper определенно помогут мне: -)