Как отключить предупреждения? - PullRequest
3 голосов
/ 04 апреля 2020

У меня есть предупреждение:

"my" variable $subject masks earlier declaration in same scope at ...

Я знаю, что могу отключить предупреждение с помощью no warnings 'all' прагмы, но не могу найти правильную категорию для моего типа предупреждений.

Как отключить только этот тип предупреждения?

Ответы [ 3 ]

10 голосов
/ 04 апреля 2020

Поиск perldoc perldiag для вашего предупреждения. Эта появляется

переменная "% s" и% s маскирует предыдущее объявление в том же% s

(W тень) Переменная «my», «our» или «state» была повторно объявлена ​​в текущей области действия или операторе, что фактически исключает весь доступ к предыдущему экземпляру. Это почти всегда опечатка. Обратите внимание, что более ранняя переменная все еще будет существовать до конца области или до тех пор, пока не будут уничтожены все ссылки на нее закрытия. *

no warnings 'shadow';
4 голосов
/ 05 апреля 2020

Как отключить только этот тип предупреждения?

Пожалуйста, не делайте этого. Намного лучше исправить ошибку, которая вызывает ошибку.

Вы дважды объявили $subject. Либо удалите my из второго объявления, либо измените имя второй переменной. Я ничего не знаю о вашем коде, поэтому не могу посоветовать вам, какой подход лучше.

1 голос
/ 05 апреля 2020

Честно говоря, я бы вообще не отключал предупреждения. Есть веская причина, по которой они предупреждают вас об этом. Я бы посоветовал вам посмотреть, как предотвратить предупреждение, а не деактивировать его. Если хотите, опубликуйте код и позвольте другим людям помогать вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...