Я должен включить предупреждения Perl с переключателем командной строки или прагмой?

Хранилище просто помечает сущности для удаления, и во время выключения менеджер сохраняемости удалит все сущности, помеченные для удаления.

Однако, если вы решите выйти досрочно, вам придется добавить менеджер персистентности и вызвать persistAll () самостоятельно.

15
задан brian d foy 27 October 2008 в 00:03
поделиться

6 ответов

Используя переключатель включит все предупреждения во всех модулях, используемых Вашей программой. Используя прагму Вы включаете его только в том определенном модуле (или сценарий). Идеально, Вы используете предупреждения во всех своих модулях, но часто это не имеет место. Используя переключатель может получить Вас много предупреждений, когда Вы используете сторонний модуль, который не безопасен от предупреждений.

Так, идеально это не имеет значения, но практично часто предпочтительно для Ваших конечных пользователей не использовать переключатель, но прагму.

31
ответ дан 30 November 2019 в 23:58
поделиться

Сделайте обоих! Всегда!

-6
ответ дан 23 October 2019 в 05:07
поделиться

-w переключатель командной строки включает предупреждения глобально для всего интерпретатора. С другой стороны, use warnings "лексическая прагма" и только применяется в лексическом контексте, в котором она используется. Обычно, Вы помещаете это наверху файла, таким образом, он относится к целому файлу, но можно также определить объем его к конкретным блокам. Кроме того, можно использовать no warnings временно выключить их в блоке, в случаях, где необходимо сделать в других отношениях генерирующее предупреждение поведение. Вы не можете сделать этого, если Вы имеете -w на.

Для получения дополнительной информации о том, как лексические предупреждения работают, включая то, как включить и выключить различные подмножества их, см. perllexwarn документ.

17
ответ дан 30 November 2019 в 23:58
поделиться

"-w" является более старым и раньше был единственным способом включить предупреждения (на самом деле "-w", просто включает глобальному $ переменную ^W). "используйте предупреждения"; теперь предпочтительно (с версии 5.6.0 и позже), потому что (как уже упомянуто) она имеет лексическое вместо глобальной области видимости, и можно повернуть определенные предупреждения включения - выключения. И не забывайте также начинать "со строгого использования";:-)

10
ответ дан 30 November 2019 в 23:58
поделиться

В дополнение к включению/отключению определенных утверждений с помощью прагмы можно также продвинуть некоторых или все предупреждения ошибкам:

use strict;
use warnings FATAL => 'all', NONFATAL => 'exec';
1
ответ дан 30 November 2019 в 23:58
поделиться

Другое различие, которое стоит отметить, то, что "прагма" предупреждений использования также позволяет Вам выбрать определенные предупреждения включить (и аналогично, "никакие предупреждения" не позволяют Вам выбирать предупреждения отключить).

5
ответ дан 30 November 2019 в 23:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: