有没有办法为当前进程获取 Perl 可执行文件的绝对路径?
$^X
会给我 Perl 可执行文件的名称,但文档指出它有时是相对路径,例如在 OS X 上似乎是这样。
ExtUtils::MakeMaker
似乎有一些魔法可以找到绝对路径,因为它在我的 OS X 上生成的 Makefile 包含
PERL = /usr/local/bin/perl
FULLPERL = /usr/local/bin/perl
但我不知道它是如何做到这一点的,也不知道其他人是否容易获得魔法。
编辑:感谢鲍罗丁的$Config{perlpath}
提示。为此ExtUtils
,我在 中找到了这个花絮ExtUtils::MM_Unix::_fixin_replace_shebang
,我猜这是 MakeMaker 用来替换#!perl
正确的 shebang 行的东西。
if ( $Config{startperl} =~ m,^\#!.*/perl, ) {
$interpreter = $Config{startperl};
$interpreter =~ s,^\#!,,;
}
else {
$interpreter = $Config{perlpath};
}