Должен ли шаблон Perl идти до или после объявления пакета? - PullRequest
2 голосов
/ 27 апреля 2011

Если в файле только один package, имеет ли значение порядок или следующий шаблон Perl?если нет технических причин, есть ли эстетика?

use 5.006;
use strict;
use warnings;
package foo;

Ответы [ 2 ]

3 голосов
/ 27 апреля 2011

Порядок имеет значение, если какая-либо часть вашей котельной пластины импортирует какие-либо подпрограммы или переменные, или делает что-то хитрое с пространством имен вызывающего абонента.

Если вы привыкли помещать его перед именем пакета, тогдаВ тот день, когда вы захотите добавить use List::Util 'reduce'; к вашей плите котла, подпрограмма будет импортирована в main вместо foo.Таким образом, пакет foo не будет импортирован reduce, и вы можете некоторое время чесать голову, пытаясь выяснить, почему он не работает.

Причина, по которой это не имеет значения стри импорта, которые вы показали, это то, что все они являются прагматическими модулями (или утверждениями), и их эффект лексически ограничен, а не ограничен пакетами.Размещенные в верхней части файла, эти прагмы будут действовать для всего файла.

2 голосов
/ 27 апреля 2011

Порядок не имеет значения с технической точки зрения.

Это всегда была моя практика (и, кстати, то, что используется в Perl Best Practices ), чтобы поместить объявление пакета вочень начать.Я бы предложил пустую строку перед объявлением пакета, если перед ним что-то есть, чтобы выделить его.

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