【发布时间】:2013-08-30 00:13:37
【问题描述】:
我一直在使用 PAR::Packer 从 Perl 脚本中创建独立的可执行文件。我唯一遇到的困难是弄清楚我必须通过-l 选项强制它包含哪些额外的DLL。
我现在正在使用需要使用 utf16-le 进行编码的 Perl 脚本。 Encode::find_encoding 函数在脚本中工作得很好,但是在我用pp 打包后就不行了。
这里有一个小脚本(我们称之为 encode.pl)来说明问题:
use strict;
use warnings;
use Encode;
my $_UTF16 = Encode::find_encoding ('utf16-le');
print $_UTF16;
如果你运行它,它会打印出类似Encode::Unicode=HASH(xxxxxx) 的东西。但是,用pp 打包它就不再起作用了:
pp -o encode_test.exe encode_test.pl
现在当我运行 encode_test.exe 时,我得到了这个:
Use of uninitialized value $_UTF16 in print at script/encode_test.pl line 5.
谁能告诉我我需要做什么(例如,要包含哪些库或任何其他解决方案)才能使这项工作正常进行,即使在使用 pp 打包后也是如此?
【问题讨论】:
标签: perl dll encoding utf-16le pp-perl-par-packager