2012-02-07 17 views

答えて

7

perlvarには、$^Xという変数があります。

$ perl -e 'print $^X, "\n";' 
/usr/bin/perl5.12.4 
+1

これは、シェルが 'bash'のときにうまく動作します。シェルが 'ksh'のとき、' perl -e 'と打ったときに 'perl'が表示されます。これはMacOS X 10.7.2で'/proc'ファイルシステムがないより少ない '/ proc/self/exe')。これはあなたが間違っていると言っているわけではありません。ここにいくつかのプラットフォームの依存関係が潜んでいることを示しています。 –

+1

はい、どこでもうまく機能しません。 'perlvar'のドキュメントには、失敗する可能性がある様々な方法についての情報がたくさんあります。私はクロスプラットフォームでうまくいくものは何も知らない。 – Mat

+0

http://p3rl.org/Probe::Perl – daxim

3

$^Xを使用してください。

2

$^X 1が正常に残念ながら、それはいくつかのシステム上の絶対パスが含まれていません

$ perl -E'say $^X;' 
/home/ikegami/usr/perlbrew/perls/5.14.2t/bin/perl 

に見えるものです。 (理由は分かりませんが、これらのシステムでは正確な情報が得られない可能性があります)$^Xに絶対パスが含まれていないと、絶対パスの検索が難しくなります。Probe::Perlfind_perl_interpreter

$ perl -MProbe::Perl -E'say Probe::Perl->find_perl_interpreter();' 
/home/ikegami/usr/perlbrew/perls/5.14.2t/bin/perl 
関連する問題