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