Thread Prüfen ob eine Subroutine vorhanden ist? (10 answers)
Opened by Strat at 2004-04-30 12:26

ptk
 2004-04-30 18:19
#81943 #81943
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[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.

Quote
Ein 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.

View full thread Prüfen ob eine Subroutine vorhanden ist?