.pm
(Perlモジュール.pl
)ファイルと(Perlスクリプト)ファイルの違いは何ですか?
1
ファイルから戻る理由も教えてください。2などを返す場合、エラーは発生しません。なぜ1
Perlモジュールから戻るのでしょうか。
.pm
(Perlモジュール.pl
)ファイルと(Perlスクリプト)ファイルの違いは何ですか?
1
ファイルから戻る理由も教えてください。2などを返す場合、エラーは発生しません。なぜ1
Perlモジュールから戻るのでしょうか。
回答:
基本的に、使用するファイル拡張子は、perl
これらのファイルの解釈方法に違いはありません。
ただし、.pm
パッケージ名に続く特定のディレクトリ構造に従ってモジュールをファイルに配置すると便利です。したがって、モジュールがExample::Plot::FourD
あり、それをのExample/Plot/FourD.pm
パスのディレクトリに配置した場合、のようにパッケージ名を指定すると、とは正しいことを行います。@INC
use
require
use Example::Plot::FourD
ファイルは、初期化コードが正常に実行されたことを示す最後のステートメントとしてtrueを返す必要があるため、そうで
1;
ない場合はtrueを返すことが確実でない限り、このようなファイルをで終了するのが通例です。ただし1;
、ステートメントを追加する場合に備えて、を配置することをお勧めします。場合は
EXPR
裸の単語で、require
「.PM」拡張子と置き換えを想定している『::』 『/』でファイル名であなたのために、標準モジュールをロードするために簡単にそれを作るために。この形式のモジュールのロードは、名前空間を変更するリスクはありません。
すべてuse
ませんが提供するパッケージ名からファイル名を、把握することでrequire
、それをBEGIN
ブロックし、呼び出しimport
パッケージに。使用しないことを妨げるものは何もありませんuse
が、それらの手順を手動で実行します。
たとえば、以下では、Example::Plot::FourD
パッケージをというファイルに入れ、ファイルt.pl
内のスクリプトにロードしましたs.pl
。
C:\Temp> cat t.pl
package Example::Plot::FourD;
use strict; use warnings;
sub new { bless {} => shift }
sub something { print "something\n" }
"Example::Plot::FourD"
C:\Temp> cat s.pl
#!/usr/bin/perl
use strict; use warnings;
BEGIN {
require 't.pl';
}
my $p = Example::Plot::FourD->new;
$p->something;
C:\Temp> s
something
この例は、モジュールファイルがで終わる必要がないことを示しています1
。真の値であれば何でもかまいません。
1
関係ない。それは可能性があります2
、それは可能性があります"foo"
、それは可能性があります["a", "list"]
。重要なのは0
、それuse
が偽であると評価されたり、失敗したりするものではないということです。