Halihallo MudGuard
print "$level$_\n";
showtree( "$level| ", "$dir\$_");
ersetzen durch: showtree2( "$level| ", "$dir\$_");
sub showtree2 ($$) {
my ($level,$dir) = ($_[0],$_[1]);
showtree($level,$dir);
}
da ist leider ein kleiner Workaround nötig, wie mir scheint.
These: Der rekursive Aufruf muss in einem anderen Block-Scope liegen. Frag mich
jetzt bitte nicht warum; ich könnte mir nur vorstellen, dass Perl den Prototypen nicht
auflösen kann, wenn auf denselben Block referenziert wird...
Es listet rekursiv alle Unterverzeichnisse auf ab dem Verzeichnis, das als erster Parameter übergeben wurde.
Das klappt auch hervorragend.
Wozu brauchst du das $level? - Wozu ein chdir (halte ich für unsinnvoll, denn nach dem
Script sollte das Verzeichnis dasselbe wie vorher sein)?
Mir ist sowieso nicht ganz klar, wieso es an dieser Stelle (lange nachdem der Prototyp feststeht) noch zu früh ist...
ggf. ein Problem im Perlparser, wenn der Parser die Funktion parsed, wird auf sie selber
referenziert (referenz auf nicht vollständig geparstes Codesegment scheint die
Fehlermeldung auszulösen). Soweit zumindest meine These.
Viele Grüsse
Philipp
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.