[Chicago-talk] Asking an class for its method list
Steven Lembark
lembark at wrkhors.com
Sun Jan 25 18:06:10 CST 2004
> How can I get back a list of methods available in an class?
$ perldoc Module::Name;
I don't know if the Module::Info gives you all of the
inherited methods; I certianly know that it cannot
extrapolate AUTOLOAD results a-priori (except for auto
split, and even that can be problematic).
Q: why would you want to use undocumented methods in
any class?
If you need to sanity check the calls before making
them then use "can":
sub dispatch
{
my $obj = shift;
my $method = shift;
if( my $sub = $obj->can($method) )
{
# caller gets back the result of calling a
# method with passed in arguments...
$method->$sub( @_ )
}
else
{
# or an excption.
my $ref = ref $obj || 'unblessed';
die "Bogus object '$obj': $ref cannot $method";
}
}
--
Steven Lembark 2930 W. Palmer
Workhorse Computing Chicago, IL 60647
+1 888 359 3508
More information about the Chicago-talk
mailing list