Philipp Hasenfratz: Methode $method der SUPER-Klasse aufrufen

Beitrag lesen

Halihallo

Ich habe eine AUTOLOAD-Funktion, welche nicht definierte Funktionsaufrufe abfängt, verarbeitet und gewisse Aktionen ausführt. Einige Methodennamen können jedoch von dieser AUTOLOAD-Funktion nicht verarbeitet werden, und genau diese sollen von der SUPER-Klasse ausgeführt werden. Leider habe ich es bisher nur mit eval-lösen können, was auch funktioniert. Aber ich will keine eval in meiner AUTOLOAD-Funktion. Kann mir jemand auf die Sprünge helfen, wie ich den gewünschten Effekt ohne eval erzielen kann? - Ich bin mir ziemlich sicher, dass dies irgendwie gehen muss.

------
   my $meth_invoc = '';
   my ($tmp, @tmp) = ('', '');
   if (wantarray()) {
      $meth_invoc = "@tmp = $self->SUPER::$method( @params );";
   } else {
      $meth_invoc = "$tmp = $self->SUPER::$method( @params );";
   }
   eval $meth_invoc; # giving up and passing to XML::DOM-Interface
   die $@ if ($@);
   return $tmp unless (wantarray());
   return @tmp if (wantarray());
------

Viele Grüsse

Philipp