Perl:如何将编码添加到 PAR 打包存档中
以下程序:
use Encode qw(:all);
my @list = Encode->encodings();
print join("\n", @list);
如果我将脚本作为 .pl 或由 pp.bat
创建的可执行文件运行(使用 ActiveState Perl),则会给出不同的结果 如果我运行由 pp.bat
创建的 a.exe
,可用编码列表非常短。如何添加编码?
The following program:
use Encode qw(:all);
my @list = Encode->encodings();
print join("\n", @list);
gives different results if I run script as .pl or as executable, created by pp.bat
(ActiveState Perl is used)
If I run a.exe
, created by pp.bat
the list of available encodings is very short. How do I add encodings?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该直接在代码中添加模块。
You should add the modules directly in your code.
执行
perldoc Encode::Supported
来找出哪个模块实现了您想要的编码。然后告诉pp
通过使用-M
命令行选项或在脚本中添加适当的use
语句来包含该模块。例如,如果您需要
iso-8859-15
编码,则由编码::Byte
。因此,您需要执行pp.bat -M Encode::Byte script.pl
,或将use Encode::Byte
添加到 script.pl。Do
perldoc Encode::Supported
to figure out which module implements the encoding you want. Then tellpp
to include that module, either by using the-M
command-line option, or by adding the appropriateuse
statement to your script.For example, if you need the
iso-8859-15
encoding, that's provided byEncode::Byte
. So you'd dopp.bat -M Encode::Byte script.pl
, or adduse Encode::Byte
to script.pl.