Укажите опцию -p в скомпилированном скрипте Perl - PullRequest
0 голосов
/ 13 ноября 2018

Я использую Strawberry Perl под Windows 10. У меня есть скрипт Perl, который я всегда вызываю с параметром -p.

Я хотел бы скомпилировать его в исполняемый файл .exe с помощью pp программа от PAR :: Packer .Можно ли указать, что он должен выполняться с параметром -p ?

Приемлемо либо выполнение команды компиляции pp , либо выполнение командной строки результирующего исполняемого файла.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Переключатель -p имеет определенное поведение, и его документация показывает эквивалентный код , поэтому просто напишите вашу программу для работы таким образом, чтобы начать с

LINE:
  while (<>) {
      ...             # your program goes here
  } continue {
      print or die "-p destination: $!\n";
  }

(Если включеноPerl 5.22 или новее, рассмотрите возможность использования << >> вместо <>.)

0 голосов
/ 13 ноября 2018

Я не знаю много о `PAR :: Packer ', но, возможно, если вы дадите сценарию строку Шебанга

#! windows/ignores/this -p
...

PAR::Packer может учитывать это в исполняемом файле.

Если нет, вы всегда можете * преобразовать -p с использованием сценария в обычный сценарий, например:

perl -MO=Deparse -p myscript-p.pl > myscript-no-p.pl

* - если ваш сценарий не имеет необычных конструкций, которые B::Deparse не может правильно обработать

...