Ruft alle Methoden und / oder Eigenschaften in einer bestimmten Perl-Klasse oder einem Modul ab

Ich habe es mit einem scheinbar einfachen Problem zu tun.

Ich schreibe ein Modul ähnlich wieUML :: Class :: Simple aber mit einigen Verbesserungen. Zusammenfassend besteht die Idee darin, für jedes Modul in einer bestimmten Quelle eine Aufzeichnungskarte abzurufen, die Informationen zu Methoden, Eigenschaften, Abhängigkeiten und untergeordneten Elementen enthält. Mein aktuelles Problem ist das Abrufen von Methoden und Eigenschaften für jedes Modul. Sehen wir uns den Code an, den ich bereits geschrieben habe:

use Class::Inspector;
use Data::Dumper;
sub _load_methods{
  my $pkg = shift;
  my $methods = Class::Inspector->methods( $pkg, 'expanded' );
  print Dumper $methods;
  return 1;
}

Wenn ich diese Funktion für ein bestimmtes Paket aufrufe, erhalte ich mehr Methoden als erwartet. Der Grund istKlasse :: Inspektor Gibt alle geerbten Methoden und auch die Accessoren zurück, wenn das Modul ein Moose :: Object ist. Ich möchte alle diese Methoden filtern, um nur diejenigen zu erhalten, die im angegebenen Paket definiert sind, nicht in den übergeordneten.

Kann jemand eine elegante Methode zum Filtern der Methodenliste in der von mir vorgeschlagenen Weise bereitstellen?

Danke im Voraus.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage