0

2 つのモジュール (MyA.pm と MyB.pm) を含む (使用する) Perl スクリプト (MyTest.pl) があります。私が抱えている問題は、モジュール A にもモジュール B を含める必要があることですが、.pl ファイルに既に含まれているため、これは機能しないようです。

MyTest.pl

use MyA;
use MyB;
print hello(); # defined in MyB

MyA.pm

use MyB;
print hello(); # defined in MyB

perl は、MyA.pm から呼び出された場合、サブルーチンhelloが未定義であると述べています。私が把握している限りでは、最初に使用した場所でのみ機能するようです (ha!)。

手がかりはありますか?

4

1 に答える 1

1

importのメソッドを表示したり、 のような標準モジュールMyBのメソッドを継承しているかどうかを教えたりしません。メソッドがないと、サブルーチンをまたは名前空間にエイリアスできません。importExporterimportMyB::helloMainMyA

2 つの選択肢は、インポートを実行するか、 のフル ネームを使用するかですMyB::hello

package編集: うーん、私はあなたが で名前を使用していないことにも気付きましたMyA. あなたのモジュールはすべてMain名前空間を個人のトイレとして使用していますか?

于 2013-03-19T13:26:09.123 に答える