<div dir="ltr"><div>Tony brought up this question last meeting. And I bumped into it today.</div><div><br></div><div>Notice that both direct and inherited methods are listed....</div><div><br></div><br><div><span style="background-color:rgb(255,255,0)">[SNIP]</span></div><div><br></div><div><div>#!/usr/bin/env perl</div><div><br></div><div><br></div><div>use Modern::Perl;</div><div><br></div><div>use Class::MOP;</div><div><br></div><div><span style="background-color:rgb(0,255,255)"># Example 1</span></div><div><span style="background-color:rgb(0,255,255)">use Data::Table;</span></div><div><span style="background-color:rgb(0,255,255)">my $dt = Data::Table->new([[11,12,13],[21,22,23],[31,32,33]], [qw/a b c/]);</span></div><div><span style="background-color:rgb(0,255,255)">my $code_ref; # to find number of rows of an object</span></div><div><span style="background-color:rgb(0,255,255)">for my $m (Class::MOP::Class->initialize('Data::Table')->get_all_methods) {</span></div><div><span style="background-color:rgb(0,255,255)">        print "name = ", $m->name, "\n";</span></div><div><span style="background-color:rgb(0,255,255)">        print "package_name = ", $m->package_name, "\n";</span></div><div><span style="background-color:rgb(0,255,255)">        print "fully_qualified_name = ", $m->fully_qualified_name, "\n";</span></div><div><span style="background-color:rgb(0,255,255)">        print "body = ", $m->body, "\n";</span></div><div><span style="background-color:rgb(0,255,255)">        print "===\n";</span></div><div><span style="background-color:rgb(0,255,255)"><br></span></div><div><span style="background-color:rgb(0,255,255)">        if ($m->name eq "nofRow") {</span></div><div><span style="background-color:rgb(0,255,255)">                $code_ref = $m->body;</span></div><div><span style="background-color:rgb(0,255,255)">        }</span></div><div><span style="background-color:rgb(0,255,255)">}</span></div><div><span style="background-color:rgb(0,255,255)">say "Number of rows = ", $code_ref->($dt);</span></div><div><br></div><div><br></div><div><span style="background-color:rgb(147,196,125)"># Example 2</span></div><div><span style="background-color:rgb(147,196,125)">use WWW::Mechanize;</span></div><div><span style="background-color:rgb(147,196,125)">my $agent = WWW::Mechanize->new();</span></div><div><span style="background-color:rgb(147,196,125)">for my $m (Class::MOP::Class->initialize('WWW::Mechanize')->get_all_methods) {</span></div><div><span style="background-color:rgb(147,196,125)">        print "name = ", $m->name, "\n";</span></div><div><span style="background-color:rgb(147,196,125)">        print "package_name = ", $m->package_name, "\n";</span></div><div><span style="background-color:rgb(147,196,125)">        print "fully_qualified_name = ", $m->fully_qualified_name, "\n";</span></div><div><span style="background-color:rgb(147,196,125)">        print "body = ", $m->body, "\n";</span></div><div><span style="background-color:rgb(147,196,125)">        print "===\n";</span></div><div><span style="background-color:rgb(147,196,125)">}</span></div></div><div><br></div><div><br></div><div><span style="background-color:rgb(255,255,0)">[/SNIP]</span></div><div><br></div><div><br></div><div>Reference: <a href="http://www.perlmonks.org/?node_id=741707">http://www.perlmonks.org/?node_id=741707</a><br></div></div>