PerlApp-generate-exe не может загрузить пакеты

PerlApp генерирует Perl-скрипт для исполняемого файла. У меня проблема с использованием PerlApp. Вот шаги:

  1. Сгенерируйте Perl-скрипт (e.pl) со следующими 2 строками require Date::Manip; требуют Дата:: Manip:: DM6;
  2. perlapp e.pl --add Date:: Manip --add Date:: Manip:: DM6
  3. e.exe генерирует следующие ошибки: c:_test>e.exe МОДУЛЬ ЗАГРУЗКИ ОШИБКИ: Date::Manip::DM6 в строке /Date/Manip.pm 35.

2 ответа

Вам нужно добавить больше, чем просто Date::Manip::DM6:

perlapp --add Date::Manip::** e.pl

Подстановочные знаки указывают на то, что все подмодули в пространстве имен Date:: Manip должны быть добавлены, включая некоторые, которые находятся более чем на 1 уровень ниже. Ошибка в том, что DM6 зависит от этих других подмодулей, некоторые из которых кажутся неявными.

Также вам не нужно require Date::Manip::DM6 поскольку это не то, как вы должны использовать модуль. Версия 6 используется автоматически в зависимости от вашей версии perl, которая включается в ваш скомпилированный exe.

На всякий случай, если вы страдаете от XY Problem :

Учитывая использование pp вместо PerlApp, Следующее работает просто отлично:

use strict;
use warnings;

use Date::Manip;

print "Hello World\n";

И тогда упаковка:

pp hello_date.pl
Другие вопросы по тегам