Perl:使用 Unicode::GCString 的 par packer 可执行文件,无法定位对象方法"new"



我正在使用PAR :: Packer模块来创建使用Unicode::GCString模块的Perl脚本的Windows可执行文件。

脚本的删除版本如下:

mwe.pl

#!/usr/bin/env perl
use strict;
use warnings;
use Unicode::GCString;
my $gcs  = Unicode::GCString->new("hello world");
print $gcs->columns();
exit(0);

我运行

perl mwe.pl

输出给出了字符串的"宽度":

11

是预期的。

我使用命令

创建mwe.exe
 pp -o mwe.exe mwe.pl

我运行

 mwe.exe

我收到错误

在 脚本/MWE.PL行6

审查了AppDataLocalTemppar-xxxxxxcache-xxxxxinclib,我相信Unicode::GCStringUnicode::LineBreak一样。

有人对如何解决此问题有任何想法吗?

解决方案可以是使用此版本的" pp"我称之为" ppp.pl"

$ENV{PAR_VERBATIM}=1;
system 'pp', @ARGV;

详细信息:https://metacpan.org/pod/distribution/par/lib/par/par/environment.pod#par_verbatim

原因与PAR包装器的此错误#38271有关:PODSTRIP不剥离" =编码UTF8",这会导致PP生成的可执行文件无法执行

也在Unicode :: GCString内部的样板

相关内容

  • 没有找到相关文章

最新更新