开发者

How do the executable scripts in Perl modules get the correct shebang line?

开发者 https://www.devze.com 2023-02-10 11:49 出处:网络
Generally, when a Perl module in开发者_如何转开发stalls an executable script, it somehow changes the #!/usr/bin/perl line to point to the appropriate Perl path. For example, if I used the perl install

Generally, when a Perl module in开发者_如何转开发stalls an executable script, it somehow changes the #!/usr/bin/perl line to point to the appropriate Perl path. For example, if I used the perl installed at /usr/local/bin/perl to install the module, then the shebang line will be changed to #!/usr/local/bin/perl, so that the installed script will always use the version of perl that installed it.

What does this, and how can I do it in my own modules that install scripts?

Edit

Note that I am specifically talking about executable perl scripts that are distributed as part of a Perl module. Since a module is installed to a specific version of Perl, any scripts installed by that module must use that same version, so #!/usr/bin/env perl is wrong.


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

EXE_FILES

Ref to array of executable files. The files will be copied to the INST_SCRIPT directory. Make realclean will delete them from there again.

If your executables start with something like #!perl or #!/usr/bin/perl MakeMaker will change this to the path of the perl 'Makefile.PL' was invoked with so the programs will be sure to run properly even if perl is not in /usr/bin/perl.

0

精彩评论

暂无评论...
验证码 换一张
取 消