Perl: исполняемый файл упаковщика с Unicode::GCString, не удается найти метод объекта "new"

Я использую модуль PAR::Packer для создания исполняемого файла Windows скрипта Perl, который использует Unicode::GCString модуль.

Укороченная версия скрипта выглядит следующим образом:

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

Я получаю ошибку

Не удается найти метод объекта "new" через пакет "Unicode::GCString" в строке script/mwe.pl 6

Рассмотрев AppData\Local\Temp\par-xxxxxx\cache-xxxxx\inc\lib, Я полагаю, что Unicode::GCString присутствует, как есть Unicode::LineBreak,

У кого-нибудь есть идеи как это исправить?

1 ответ

Решение

Решением может быть использование этой версии "pp", я называю это "ppp.pl"

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

Подробности на https://metacpan.org/pod/distribution/PAR/lib/PAR/Environment.pod#PAR_VERBATIM

Причина связана с этой ошибкой. Ошибка #38271 для PAR-Packer: PodStrip не удаляет "=encoding utf8", из-за чего исполняемый файл, сгенерированный pp, не может быть выполнен

Также образец внутри Unicode::GCString

Другие вопросы по тегам