我试图建立一个perl包(模块+脚本)。
我Makefile.PL具有以下,包括我的脚本
EXE_FILES => [
'bin/somescript1',
],
但在安装后脚本,它增加了以下的安装脚本的开头。
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
if 0; # not running under some shell
它为什么这样做,我可以把它不包括?
我试图建立一个perl包(模块+脚本)。
我Makefile.PL具有以下,包括我的脚本
EXE_FILES => [
'bin/somescript1',
],
但在安装后脚本,它增加了以下的安装脚本的开头。
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
if 0; # not running under some shell
它为什么这样做,我可以把它不包括?
当的ExtUtils :: MakeMaker的安装脚本,它修改的家当线使用的路径, perl
你用于构建分布。 这样,当你调用脚本,它使用相同perl
,你用来安装的依赖关系。
此外,它补充说, exec
行。 如果由于某种原因,该系统的外壳,而不是启动程序perl
,在exec
它切换到perl
。
不要管它。 这不仅可以帮助你。
但是,如果你想覆盖它,你必须覆盖的MakeMaker的是安装程序的部分。 如果你想切断你的手臂,你必须找出如何自己做。 这一切都在MakeMaker的文档。
你不应该担心这些行。 这是一种方法,使你的脚本运行的既Perl和外壳,使其成为超便携。
如果你的家当线设置为#!的/ usr / bin中/ perl的包膜你可以利用在的ExtUtils的错误:: MM_Unix和EVAL线没有安装添加。 此西港岛线突破,如果安装主机没有工作的/ usr / bin中/ ENV