Давно заметил, что многие коллеги пишут так:
package Package;
use strict;
use warnings;
Как истинного grammar nazi, меня это не может не возмущать, поскольку такой код вводит в заблуждение неокрепшие души насчет области действия данных прагм.
$ perl -le 'package P1; use strict; package P2; $_ = Heil'
Bareword "Heil" not allowed while "strict subs" in use at -e line 1.
Execution of -e aborted due to compilation errors.
$ perl -le 'package P1; use warnings; package P2; print'
Use of uninitialized value $_ in print at -e line 1.
Истинные арийцы должны писать только так:
use strict;
use warnings;
package Package;
И да, это относится не только к strict и warnings, а вообще ко всем прагмам, область действия которых — файл. Например, use 5.010 и use utf8.
P. S. Мне могут возразить, что истинные арийцы ни под каким предлогом не могут держать несколько пакетов в одном модуле, но на это я лишь расхохочусь в лицо провокаторам истинно арийским смехом.
P. P. S. Да, и кстати, закон Годвина :-þ
P. P. P. S. И да, я знаю, что по умолчанию используется пакет main. Но тем такой порядок включения прагм более символичен. Особо удолбанные grammar nazi в прошлом могли бы писать
package;но в версии 5.010 синтаксис package без параметров наконец убрали. И поделом. Даже в нацизме надобно знать меру.
use strict;
use warnings;
package Package;

4 comments: