Perlモジュールの使用について読んだすべてのことから、基本的な使用法は次のとおりです。
.pm
ステートメントを含む拡張子付きのモジュールファイルpackage <name>
。ここ<name>
で、は拡張子なしのモジュールのファイル名です。- モジュールを使用するコードファイルには、ステートメントが含まれています
use <name>;
。
私がコーディングしているアプリケーションには、約5つのモジュールを使用する1つのメインコードスクリプトがあります。モジュールにステートメントを含めるのを忘れていましたpackage <name>
が、コードはuse <name>
ステートメントで問題なく実行されました。モジュールの1つでエラーが発生し始めUndefined subroutine
たので、各モジュールにpackageステートメントを追加しました。これで、これらのモジュールの残りは動作を停止しました。何が得られますか?
例:
mainapp.pl
#!/usr/bin/perl
use UtyDate;
my $rowDate = CurrentDate("YYYYMMDD");
UtyDate.pm
#!/usr/bin/perl
package UtyDate;
sub CurrentDate
{
#logic
}
return 1;
上記のコードを実行すると、エラーが発生しますUndefined subroutine &main::CurrentDate called at...
。ただし、package UtyDate;
UtyDate.pmから行を削除しても、エラーは発生しません。この状況は、すべてではありませんが、いくつかのモジュールに存在します。
明らかに私が示していないコードはもっとたくさんありますが、私が示していないコードのいずれかが、ここに示したパッケージ/使用構造にどのように影響するか混乱しています。