Читая через perldoc perlrun, похоже, что вы ищете то, о чем говорится в опции -f:
-f
Отключить выполнение $ Config {sitelib} /sitecustomize.pl при запуске.
Perl можно построить так, чтобы он по умолчанию пытался выполнить
$ Config {sitelib} /sitecustomize.pl при запуске (в блоке BEGIN). это
это ловушка, которая позволяет системному администратору настраивать поведение Perl. Это
например, может использоваться для добавления записей в массив @INC, чтобы сделать Perl
найти модули в нестандартных местах.
Perl фактически вставляет следующий код:
BEGIN {
do { local $!; -f "$Config{sitelib}/sitecustomize.pl"; }
&& do "$Config{sitelib}/sitecustomize.pl";
}
Поскольку это фактическое действие (не обязательное), sitecustomize.pl этого не делает
нужно вернуть истинное значение. Код запускается в основном пакете, в его
собственная лексическая сфера. Однако, если сценарий умрет, $ @ не будет установлен.
Значение $ Config {sitelib} также определяется в коде C, а не
читать из Config.pm, который не загружен.
Код выполняется очень рано. Например, любые изменения, внесенные в @INC
будет отображаться на выходе perl -V
. Конечно, END блоки будут
точно так же казнен очень поздно.
Чтобы определить во время выполнения, была ли эта возможность скомпилирована в вашем
perl, вы можете проверить значение $ Config {Использованияcustomize}.