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

UtilPerlSkripteSubForm edit

Titel Wie finde ich alle Methoden eines Objekts?
Autor TinaMueller
Bereich PerlSkripteDebug
Topic revision: 2007-01-15, TinaMueller
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.