Есть ли способ получить абсолютный путь к исполняемому файлу Perl для текущего процесса?
$^X даст мне имя исполняемого файла Perl, но в документации указано, что иногда это будет относительный путь, и это похоже на правду, например, в OS X.
ExtUtils ::MakeMaker, кажется, обладает некоторой магией для поиска абсолютного пути, так как файл Makefile, который он генерирует в моей OS X, содержит
PERL = /usr/local/bin/perl
FULLPERL = /usr/local/bin/perl
, но я понятия не имею, как он это делает, и легко ли эта магия доступна другим.
РЕДАКТИРОВАТЬ :Спасибо Бородину за подсказку $Config{perlpath}
. Поискав это в ExtUtils, я нашел этот лакомый кусочек в ExtUtils ::MM _Unix ::_fixin _replace _shebang, который, я думаю, использует MakeMaker для замены #!perl правильным линия Шебанга.
if ( $Config{startperl} =~ m,^\#!.*/perl, ) { $interpreter = $Config{startperl}; $interpreter =~ s,^\#!,,; } else { $interpreter = $Config{perlpath}; }