我有一个perl脚本(MyTest.pl),包括(使用)两个模块(MyA.pm和MyB.pm)。 我遇到的问题是模块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!)的地方。
任何线索?
答案 0 :(得分:1)
您没有向{1}}显示import
方法或告诉我们它是否继承了MyB
等标准模块的import
方法。
如果没有Exporter
方法,则import
子例程不能在MyB::hello
或Main
命名空间中别名。
您的两个选择是进行导入或使用MyA
的全名。
编辑:
嗯,我还注意到你没有在MyB::hello
中使用package
名称。您的模块是否都使用MyA
命名空间作为个人垃圾箱?