在已编译的 Perl 脚本上指定 -p 选项
Specify -p option on compiled Perl script
我在 Windows10 下使用 Strawberry Perl。我有一个 Perl 脚本,我总是使用 -p 选项调用它。
我想使用 PAR::Packer 中的 pp 程序将其编译为可执行文件 .exe。是否可以指定它应该使用 -p 选项执行?
无论是在编译命令pp命令上还是在生成的可执行文件的命令行上运行都是可以接受的。
我对 `PAR::Packer' 了解不多,但也许如果你给脚本一个 shebang 行
#! windows/ignores/this -p
...
PAR::Packer
可能会在可执行文件中遵守它。
如果没有,您可以随时*将 -p
使用脚本转换为常规脚本,如下所示:
perl -MO=Deparse -p myscript-p.pl > myscript-no-p.pl
* - 除非您的脚本具有 B::Deparse
无法正确解析的异常结构
-p
开关具有已定义的行为,其文档显示 equivalent code,因此只需编写您的程序以这种方式开始。
LINE:
while (<>) {
... # your program goes here
} continue {
print or die "-p destination: $!\n";
}
(如果使用 Perl 5.22 或更新版本,请考虑使用 <<>> 而不是 <>
。)
我在 Windows10 下使用 Strawberry Perl。我有一个 Perl 脚本,我总是使用 -p 选项调用它。
我想使用 PAR::Packer 中的 pp 程序将其编译为可执行文件 .exe。是否可以指定它应该使用 -p 选项执行?
无论是在编译命令pp命令上还是在生成的可执行文件的命令行上运行都是可以接受的。
我对 `PAR::Packer' 了解不多,但也许如果你给脚本一个 shebang 行
#! windows/ignores/this -p
...
PAR::Packer
可能会在可执行文件中遵守它。
如果没有,您可以随时*将 -p
使用脚本转换为常规脚本,如下所示:
perl -MO=Deparse -p myscript-p.pl > myscript-no-p.pl
* - 除非您的脚本具有 B::Deparse
无法正确解析的异常结构
-p
开关具有已定义的行为,其文档显示 equivalent code,因此只需编写您的程序以这种方式开始。
LINE:
while (<>) {
... # your program goes here
} continue {
print or die "-p destination: $!\n";
}
(如果使用 Perl 5.22 或更新版本,请考虑使用 <<>> 而不是 <>
。)