私は主にOSX Snow LeopardでperlのハッキングにTextmateを使用しています。数日前に私がMacportsをインストールしたときには大丈夫でした(私はmacportsが/ opt/localにperlのいくつかのバージョンをインストールするという噂を聞いてきました)。今、CPANからインストールし、Textmateからifを使用しようとすると、Cmd + Rを実行するとエラーが発生します(前回のCPANからHTML :: TreeBuilderをインストールしました)。Textmateからいくつかのperlスクリプトを実行します(@INCエラーで見つけることはできません)
Can't locate HTML/TreeBuilder.pm in @INC (@INC contains: /Applications/TextMate.app/Contents/SharedSupport/Bundles/Perl.tmbundle/Support /Library/Perl/Updates/5.10.0/darwin-thread-multi-2level /Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level /System/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level /Library/Perl/5.10.0 /Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0 /Network/Library/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library/Perl/Extras/5.10.0 .) at /workspace/PerlScripts/test.pl line 2.
ただし、コマンドラインから実行するとうまく動作します。あなたが気づくなら、textmateはPerlバージョン5.10.0を使用しています。私は、コマンドラインから「Perlの-v」を実行すると、それは私5.12.3などバージョンを示し(以下、端末からのコピーペーストを参照)
This is perl 5, version 12, subversion 3 (v5.12.3) built for darwin-multi-2level
私が使用した小さなPerlのコードはこれです:
"/opt/local/bin/perl
その後、
私が走った "プリントシステム(" これはperlの);":
#!/usr/bin/env perl <br/>
use HTML::TreeBuilder; <br/>
print $HTML::TreeBuilder::VERSION."\n";<br/>
print "$INC{'HTML/TreeBuilder.pm'}\n";<br>
は、それから私は走った、コマンドラインから "のperlた" と、それはこれを返さTextmateから返されました。
/usr/bin/perl
私のシステムには2つのバージョンのperlがあります。 5.10.0 Textmateは参照しようとしていますが、CPANのインストールが見えません。コマンドラインからCPANをインストールしたときのデフォルトのバージョンのperlと思われる5.12.3もあります。これで
#! /usr/bin/perl -w
(これはTextMateでピックアップするシステムのデフォルトのperlを強制することをGoogleで読んでいた):私はこれを交換しようとしたん
#!/usr/bin/env perl
ませサイコロはまだありません。 Textmateは質問の冒頭で述べたのと同じエラーを表示します。ですから、Textmateで動作させる方法はありますか?そして、テキストメイトがバージョン5.12.3を指し示すようにする方法はありますか?
感謝:
の下ではシェル変数、のようなものがあり、ご希望のperl(及びCPAN)へのパスを確認してください。私はコマンドラインで "echo $ PATH"を走らせていましたが、それは私が与えた道のりでした。私はそれらをenvironment.plistに入れました。それから、コマンドラインで "echo $ PERL5LIB"を実行し、何も返さなかった。それはシェルにも設定されていなかったことを意味します。私はシェルからperlスクリプトを実行できますが、textmateから実行するだけで問題が発生することに注意してください。とにかく、私はenvironment.plist "/ opt/local/bin/perl"にPERL5LIBの次の値を入力しました。その後、私は閉鎖し、テキストメイトから退場して再開しました。それでもエラーは同じです。私は何か間違っているのですか? – Anshu
Perlライブラリパスも設定する必要があります。それが '@ INC'を定義するものです。 – Quentin
PERL5LIBライブラリのパス "/ opt/local/bin/perl"が正しくありませんか?コマンドラインで "which perl"のパスを取得します。 – Anshu