[quote=Strat,30.April.2004, 15:35][quote=ptk,30.04.2004, 11:58]Du kannst den Aufruf in ein eval { ... } einpacken und den Fehlerwert danach pruefen. Existiert die Funktion nicht, wird $@ auf /Undefined subroutine/ matchen.[/quote]
achtung: sowas kann gefaehrlich sein, weil die funktion ja im eval ausgefuehrt wird... wenn du wirklich nur wissen willst, ob sie existiert, bleibt wohl nur meine Loesung von oben. Wenn du sie hingegen ausfuehren willst, ist der eval-Ansatz wohl besser...
[/quote]Genau. Wobei dein Ansatz nicht immer funktioniert, insbesondere nicht, wenn per AUTOLOAD nachgeladen wird. Fuer das Testen auf Existenz von Subroutinen gilt ungefaehr das gleiche wie beim Testen, ob eine Datei lesbar oder schreibbar ist: solange man die Aktion nicht durchfuehrt, kann man sich nie sicher sein.
QuoteEin weiterer Ansatz ist, AUTOLOAD zu verwenden; wenn das Script dann in der Subroutine AUTOLOAD haengt, weisst du, dass was schiefgegangen ist
Es sein denn, es wird bereits AUTOLOAD verwendet.