如何在 Perl 中循环访问一个类的所有方法?有没有关于 Perl 内省或反射的好的在线参考?
Todd Gardner 使用 Moose 的建议很好,但他选择的示例代码并不是很有帮助。
如果你正在检查一个非 Moose 使用类,你会这样做:
use Some::Class;
use Class::MOP;
my $meta = Class::MOP::Class->initialize('Some::Class');
for my $meth ( $meta->get_all_methods ) {
print $meth->fully_qualified_name, "\n";
}
See the 类::MOP::类文档 http://search.cpan.org/dist/Class-MOP/lib/Class/MOP/Class.pm有关如何进行内省的更多详细信息。
您还会注意到我使用了 Class::MOP 而不是 Moose。 Class::MOP(MOP = 元对象协议)是 Moose 构建的基础。如果您正在使用非 Moose 类,那么使用 Moose 进行内省不会给您带来任何好处。
如果你愿意的话,你可以use Moose ()
and Moose::Meta::Class->initialize
而不是 CMOP。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)