Что происходит при альтернативном объявлении строгих прагм в скрипте perl? - PullRequest
2 голосов
/ 02 марта 2011

Я новичок в Perl и пробую пример кода для моего проекта.Что происходит, когда я пишу код, приведенный ниже, чтобы включить строгие прагмы в perl.

использовать строгий;

....... # Исходный код .......

нет строгих "переменных";

....... # исходный код

использовать строгие # все строгие прагмы разрешены до следующего определения прагмы?

...... # Исходный код

нет строгих "подпрограмм"; # do Начиная с этого момента отключена только строгая прагма, а другие включены?

...........

Могу ли я вставитьиспользовать объявления строгой прагмы между исходным кодом?

Ответы [ 3 ]

2 голосов
/ 02 марта 2011

Для чего бы это ни стоило, я думаю, что лучше изолировать изменения прагмы, используя область действия:

use strict;

{
    no strict;
    local $foo = 1;
}

local $bar = 1;

Это взрывает при установке bar, но не при foo.

2 голосов
/ 02 марта 2011

use strict имеет лексическую область, что означает, что он останется в силе «до конца включающего блока, файла или eval (в зависимости от того, что наступит раньше)».

1 голос
/ 02 марта 2011

С perldoc strict:

Если список импорта не предоставлен, все предполагаются возможные ограничения.

Вы можете в любое время изменить строгие правила ("subs", "vars" и "refs").

...