Perl: モジュール検索先を一覧表示

Perl: test.pl

#!/usr/bin/perl
require Data::Dumper;
print Data::Dumper->Dump([\@INC], ['*INC']) . "\n";

 

出力

@INC = (
         '/Library/Perl/5.16/darwin-thread-multi-2level',
         '/Library/Perl/5.16',
         '/Network/Library/Perl/5.16/darwin-thread-multi-2level',
         '/Network/Library/Perl/5.16',
         '/Library/Perl/Updates/5.16.2',
         '/System/Library/Perl/5.16/darwin-thread-multi-2level',
         '/System/Library/Perl/5.16',
         '/System/Library/Perl/Extras/5.16/darwin-thread-multi-2level',
         '/System/Library/Perl/Extras/5.16',
         '.'
       );

 

ついでにトラブルシューティング

cpanm {モジュール名} でインストールしたはずなのに無い→あれ?どこだ?を探すコマンド

インストールされているモジュールを検索するコマンド

$ find `perl -e 'print "@INC"'` -name '*.pm' -print

それを特定のモジュール(この場合は Xslate)で grep する場合

$ find `perl -e 'print "@INC"'` -name '*.pm' -print | grep 'Xslate'

例えばこんな感じで出てきたのを使いたい

/Users/UserName/perl5/perlbrew/perls/perl-5.18.1/lib/site_perl/5.18.1/darwin-2level/Text/Xslate.pm

Perl: test.pl

use lib '/Users/UserName/perl5/perlbrew/perls/perl-5.18.1/lib/site_perl/5.18.1/darwin-2level/';

これで Text::Xslate が使えるようになる。