我有這樣的父模塊MyApp.pm:Perl的出口子模塊
package MyApp;
use Moose;
use base 'Exporter';
our @EXPORT = qw(msg);
sub msg {
print "Hello msg\n";
}
1;
並通過該子模塊MyApp2.pm繼承:
package MyApp2;
use Moose;
extends qw(MyApp);
1;
,當在App.cgi使用這樣的腳本:
#!/usr/bin/perl
use MyApp2;
msg();
我收到錯誤消息:
Undefined subroutine &main::msg called at App.cgi line 3.
因此,導出的函數在子類MyApp2中不起作用,但只有在使用「使用MyApp」而不是「使用MyApp2」時才起作用。我假設導出的函數應該可以訪問擴展父類的子模塊。我做錯了什麼。
所以沒有辦法導出到子模塊?我想用一個主模塊構建我自己的小框架,並且所有子模塊擴展此模塊,以便所有應用程序共享相同的環境,我想要做的是在主模塊中導出功能,並可供所有子模塊使用。那可能嗎? – daliaessam
這是可能的 - 而不是'擴展qw(MyApp);'寫'使用MyApp;擴展qw(MyApp);'。儘管如此,這非常非常不可取。除非你足夠上師,否則這種事情可能會讓你繼續走下去。任何需要問及如何做到這一點的人都不夠上師。 – tobyink