Perl:使用Unicode :: GCString的par packer可执行文件,无法找到对象方法“new”

时间:2017-04-21 18:00:34

标签: perl unicode pp-perl-par-packager

我正在使用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

输出给出字符串的'width':

11

这是预期的。

我使用命令

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

当我跑

 mwe.exe

我收到错误

  

无法通过包“Unicode :: GCString”找到对象方法“new”   script / mwe.pl第6行

经过审核AppData\Local\Temp\par-xxxxxx\cache-xxxxx\inc\lib,我认为Unicode::GCString存在,Unicode::LineBreak也是如此。

有没有人对如何解决这个问题有任何想法?

1 个答案:

答案 0 :(得分:3)

解决方案可以是使用这个版本的“pp”我称之为“ppp.pl”

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

https://metacpan.org/pod/distribution/PAR/lib/PAR/Environment.pod#PAR_VERBATIM

的详细信息

原因与此错误 Bug #38271 for PAR-Packer: PodStrip does not strip "=encoding utf8" which cause the executable generated by pp failed to exec

有关

Unicode :: GCString

中的样板文件