在perl中与修改@INC的代码一起使用-c
考虑以下脚本“test.pl” test.pl 命令提示: 我知道我必须添加“use lib”pragma,或者必须在Begin块中推送@INC内的路径才能使其工作 如果模块的路径未在@INC中定义,在perl中与修改@INC的代码一起使用-c,perl,Perl,考虑以下脚本“test.pl” test.pl 命令提示: 我知道我必须添加“use lib”pragma,或者必须在Begin块中推送@INC内的路径才能使其工作 如果模块的路径未在@INC中定义, snytax检查时,“perl-c test.pl”会推送“abc路径”吗?否,当作为perl-c运行时,示例代码将找不到“abc”模块。它在没有-c的情况下运行时也找不到它,但您似乎已经知道了这一点使用发生在编译时。除非在BEGIN块中包装push,否则直到运行时才会发生。如果您这样做(或者使用
snytax检查时,“perl-c test.pl”会推送“abc路径”吗?否,当作为
perl-c
运行时,示例代码将找不到“abc”模块。它在没有-c
的情况下运行时也找不到它,但您似乎已经知道了这一点<代码>使用发生在编译时。除非在BEGIN
块中包装push,否则直到运行时才会发生。如果您这样做(或者使用lib
),那么它将在perl-c
下工作。来自perlrun:
-c
使Perl检查程序的语法,然后退出
没有执行它。实际上,它将执行并开始
,单元检查
,
或检查
块和任何使用
语句:它们被视为
在程序执行之外发生的<代码>初始化
和结束
块,
但是,将跳过
除非如您所述,您
使用lib
或将推送包装到开始
块中,否则它不会。我不太理解您的问题。在这方面,是什么让您认为perl-c
与perl
不同?
#usr/bin/perl -w
push (@INC,"path_for_abc");
use abc;
#rest of the code ...
$ perl -c test.pl