Hi,
<mode type="suck from my fingertips"> ;)
perl parst Deinen Code, kann aber eine Funktion erst als definiert erkennen, wenn der zugehörige Block auch geschlossen wurde. Wird nun innerhalb des Blocks die Funktion rekursiv aufgerufen, kann perl eben nicht die Prototypen während der Kompilierzeit überprüfen, weil die Definition der Funktion noch nicht beendet ist. Ohne Prototypen ist perl ein premature functioncall equal, weil es ja nichts zur Kompilierzeit zu prüfen gibt. Es könnte höchstens ein Runtime-Error auftreten, falls es die Funktion nicht gibt.
</mode>
Ok, ok.
Abhilfe schafft sicherlich eine Deklaration mit 'sub showtree($$);' am Anfang des Skripts.
Das ist es! Ich danke Dir!
Das gefällt mir doch wesentlich besser als die Umgehung mit der zweiten Funktion...
cu,
Andreas
Der Optimist: Das Glas ist halbvoll. - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/