2011-07-17 11 views
4

私はMooseの学習に目を向けようとしており、クラスPMファイルを正しく展開する方法を知る必要があります。Perl Moose - クラスPMファイルをどのように配備するのですか?

私はPerson.pmを作成しました。

main.plスクリプトと同じフォルダ内にPersonを使用している場合、これをメインパッケージで呼び出すことはできますか。またはファイルを使用できるようにする前に@INC perlモジュールの場所にmakeを実行して展開する必要がありますか?

自分のローカルフォルダにpmクラスファイルを作成し、そのフォルダ内のmain.plプログラムで呼び出すことを望みます。

どうすればいいですか?

+2

"私のメインパッケージでこれを呼び出すことはできますか?私のmain.plスクリプトと同じフォルダに人がいる人は" - その質問に答える最良の方法は試してみることです。 –

答えて

10

@INCの最初の項目としてPerlはデフォルトで.を持つので、横並びに動作します。あなたはもう少し洗練されたようにしたい場合は、FindBinuse libを使用することができます。

#!/usr/bin/env perl 
use strict; 
use warnings; 

use FindBin; 
use lib "$FindBin::Bin/lib"; 

# Main program continues... 

スクリプトと同じディレクトリにlib/であなたのモジュールを入れて、あなたのスクリプトは、それらが表示されます。これにより、ライブラリモジュールとスクリプトが分離された状態に保たれます。

use strict; 
use warnings; 

use FindBin; 
use lib "$FindBin::Bin/../lib"; 

use Test::More; 
# other test modules, your plan, etc. 

をそして、あなたのテストでは、同様のライブラリモジュールの適切な場所になります:あなたがテストを書いている場合は、次のように起動テストスクリプトでt/ライブラリを持つことができます。

PERL5OPT=-I/path/to/some/libraryを使用して、そのパスを@INCに追加すると、use libはまったく必要ありません。

関連する問題