Philipp Hasenfratz: isMethod - schnelle Implementation

Beitrag lesen

Halihallo

hab mal ne simple Frage:

kennt jemand (mir ist der Lösungsansatz abhanden gekommen) eine sehr, sehr schnelle Art, wie man überprüfen kann, ob die Klasse eine bestimmte Methode unterstützt?

Wie muss das '...' im folgenden Quelltext lauten?
Es gibt doch eine globale Variable, welche den Namensraum des Moduls festhält, nur kenne ich diese nicht mehr.

if (bla::{$name}) oder so ähnlich, oder?

so ala:

package bla;

use strict;

sub new { bless {}, shift }

sub isMethod {
   my ($self, $name) = @_;
   if (...) {
      return 1;
   } else {
      return undef;
   }
}

sub test {
   print "OK, test successful";
}

1;

package main;

use bla;

my $t = new bla;
if ($t -> isMethod('test')) {
   $t -> test;
}

1;

Viele Grüsse

Philipp