Как исполняемые скрипты в модулях Perl получают правильную строку shebang? - PullRequest
1 голос
/ 15 февраля 2011

Обычно, когда модуль Perl устанавливает исполняемый скрипт, он каким-то образом изменяет строку #!/usr/bin/perl, указывая на соответствующий путь Perl.Например, если я использовал perl, установленный на /usr/local/bin/perl, для установки модуля, то строка shebang изменится на #!/usr/local/bin/perl, так что установленный скрипт всегда будет использовать версию perl, которая его установила.

Что это и как я могу сделать это в своих собственных модулях, которые устанавливают скрипты?

Редактировать

Обратите внимание, что я специально говорю о исполняемых скриптах Perl, которые распространяются как частьPerl модуль.Поскольку модуль установлен на определенную версию Perl, любые сценарии, установленные этим модулем, должны использовать эту же версию, поэтому #!/usr/bin/env perl неверно.

1 Ответ

2 голосов
/ 03 июля 2012

С http://metacpan.org/pod/ExtUtils::MakeMaker

EXE_FILES

Ссылка на массив исполняемых файлов.Файлы будут скопированы в каталог INST_SCRIPT.Make realclean снова удалит их оттуда.

Если ваши исполняемые файлы начинаются с чего-то вроде #! Perl или #! / Usr / bin / perl MakeMaker изменит это на путь perl 'Makefile.PL'вызывается так, что программы будут работать правильно, даже если perl не находится в /usr/bin/perl.

...