1
我不知道我是否以正確的方式提出這個問題,但我會盡力解釋。如何更新繼承駝鹿類的元信息?
我有一個基類MyClass.pm:
use MooseX::Declare;
class MyClass {
method test_it {
for (__PACKAGE__->meta->get_all_methods){
print $_->name . "\n";
}
}
}
而另一個類MyOtherClass.pm:
use MooseX::Declare;
class MyOtherClass extends MyClass {
method one {
return 1;
}
method two {
return 1;
}
method three {
return 1;
}
}
而且腳本use_it.pl:
#!/usr/bin/perl
use strict;
use warnings;
use MyClass;
use MyOtherClass;
my $class = MyOtherClass->new;
my $otherclass = MyOtherClass->new;
print "MyClass can:\n";
$class->test_it;
print "MyOtherClass can:\n";
$otherclass->test_it;
exit 0;
輸出是:
MyClass can: dump DEMOLISHALL meta does new DESTROY BUILDALL BUILDARGS test_it DOES MyOtherClass can: dump DEMOLISHALL meta does new DESTROY BUILDALL BUILDARGS test_it DOES
因此,如果我在MyClass上調用test_it,輸出將包含預期的「test_it」以及一些構建方法。 在MyOtherClass上調用test_it會產生一個,兩個和三個丟失的輸出。
如何獲取包含繼承類的所有方法的方法列表?
謝謝! Ouhh,如此明顯:) – 2011-01-12 16:31:03