2017-02-02 4 views
0

У меня есть небольшой скрипт perl test.pl. Этот скрипт perl использует ввод как файл YAML database.yml Чтобы преобразовать эти скрипты perl в исполняемый файл, я запускаю следующую команду, показанную ниже.Преобразование Perl Script в исполняемый файл упаковки YAML-файл в исполняемом файле, используемый скриптом perl

pp -o -x teste.exe test.pl.

Он создает исполняемый файл, но когда я пытаюсь запустить этот исполняемый файл, он выдает ошибку, что файл database.yml не найден в этом каталоге.

Как я могу убедиться, что исполняемый файл включает файл YAML при создании exe скрипта perl?

Примечание: - Я использую Perl verison 5.8 в Unix.

ответ

0

С помощью переключателя -a:

pp -a database.yml -o -x teste.exe test.pl 

Из pp документации:

-a, --addfile=FILE|DIR 
     Add an extra file into the package. If the file is a directory, recursively add all files inside that directory, with links turned into actual files. 

     By default, files are placed under "/" inside the package with their original names. You may override this by appending the target filename after a ";", like this: 

      % pp -a "old_filename.txt;new_filename.txt" 
      % pp -a "old_dirname;new_dirname" 

     You may specify "-a" multiple times. 
+0

Я попытался это, но не работал. Нужно ли включать какой-либо дополнительный модуль perl, чтобы я мог использовать этот материал или был встроен в пакет perl по умолчанию. – user2738709

+0

Какое сообщение об ошибке у вас есть? Как открыть файл yaml в приложении? Я не знаком с вашей линией 'pp', из документации это должно быть нечто вроде' pp -x -o teste.exe test.pl' с добавлением -a. -x должен позаботиться о том, чтобы включить дополнительный модуль YAML, который необходим, поскольку он не является первичным Perl, в противном случае принудительно используйте его -M YAML' или '-M YAML :: XS'. На несвязанной ноте, perl 5.8 действительно старенький, пожалуйста, найдите способ обновления, если сможете. –