В последнем вопросе для доступа к хэшу использовался инвариантный синтаксис %hash->{key} = 1;
, который, кажется, работает нормально, но я бы подумал, что это будет синтаксическая ошибка.
Кажется, это работает и для массивов:
my @array;
@array->[3] = 6;
Это поведение где-то задокументировано? Я не помню, чтобы читал это, но, возможно, упустил это из виду.
Кажется, он ведет себя так же, как:
(\%hash)->{key}
а не то, что я бы предположил:
(scalar %hash)->{key} # runtime error