Ну, так как я попробовал это в 5.8.7 со строгим, и это сработало, я не могу не думать, что код, который вы на самом деле выполняете, был искажен каким-то образом, это не так, и "Это работало без строгого" означает, что это не умер Perl позволяет вам делать все, что вы хотите, и позволяет вам самим решать проблемы.
Так что ответ
1) код работает (для игрушечного кода) на 5,8
2) "это работало без строгих правил" - это распространенное утверждение среди новичков в Perl, и пока я не увижу некоторый код, который пытается структурировать хеш-ссылку, я не могу сказать ничего другого.
3) Почему это «работает без строгих правил» - это сочетание того, насколько вы подходите под этот шаблон, как настоящий код искажен, и тот факт, что Perl позволит вам выстрелить себе в бесчисленное количество раз при строгом отключении - и иногда вы будете думать, что это сработало.
4) Что-то на самом деле делает работает без строгого, и они предназначены для. То есть отключение стриктур (no strict 'refs';
) означает, что вы намеренно делаете случайную операцию.