Это для обратной совместимости. В Perl 4 вообще не было строгих правил, и, скорее всего, все еще существуют сценарии, изначально написанные для Perl 4, которые все еще прекрасно работают с Perl 5. Создание строгих автоматических режимов сломало бы эти сценарии. Ситуация еще хуже для однострочников, многие из которых не удосуживаются объявлять переменные. Если сделать строчные строки по умолчанию строгими, это может привести к поломке миллионов сценариев оболочки и Makefile.
Он не может быть загружен автоматически, потому что он добавляет ограничения, а не функции. Одно дело загружать IO :: File, когда метод вызывается для дескриптора файла. Но активировать строгий, если код не сделал что-то запрещенное строгим, бессмысленно.
Если в сценарии указана минимальная версия 5.11.0 или выше (например, use 5.012
), тогда строгий автоматически включается . Это не включает предупреждения, но, возможно, это будет добавлено в будущей версии. Кроме того, если вы выполняете OO-программирование на Perl, вы должны знать, что использование Moose автоматически включает и strict
, и warnings
в этом классе.