Wie finde ich alle Methoden eines Objekts?
Name
FindMethods?
Aufgabe
Zu einem Objekt oder einer Klasse alle verfügbaren Methoden finden
Skript
my @exclude = qw(B Exporter);
my @m = methods(ref $objekt, \@exclude);
# oder
# my @m = methods('Klasse', \@exclude);
print Dumper \@m;
sub methods {
my ($package, $ex) = @_;
return if grep { $package eq $_ } @$ex;
my @m;
no strict 'refs';
for my $name (keys %{$package.'::'}) {
my $sym = ${$package.'::'}{$name};
if (defined *{$sym}{CODE}) {
push @m, [$name, $package];
}
}
for my $isa (@{$package.'::ISA'}) {
push @m, methods($isa, $ex);
}
return @m;
}
--
TinaMueller - 07 Jul 2005
Ergänzungen, Kommentare
Kommentare werden am besten in folgender Form vorgenommen, damit
sie im Inhaltsverzeichnis angezeigt werden (natürlich ohne das <verbatim>):
---### Main.??? - 14 Jul 2003 - Betreff