Thread Dir ohne Unterordner in .txt Datei u.ä.. Wie? (60 answers)
Opened by stormy2211 at 2007-11-02 21:31

GUIfreund
 2013-03-01 17:44
#166115 #166115
User since
2011-08-08
559 Artikel
BenutzerIn
[default_avatar]
Das klappt ja schon ganz gut mit der Rekursion, du bist nicht mehr weit vom Ziel. Dein Hauptproblem ist im Moment die Parameterübergabe an Subroutinen. Aus Sicht der sub stehen die in einem Array namens @_. Dort musst du sie herausholen. Für einen einzelnen Parameter macht man das üblicherweise so:
Code (perl): (dl )
1
2
sub opdir {
    my $Dir = shift;

Bei mehreren Parametern schreibt man
Code (perl): (dl )
1
2
sub opdir{
    my ($max, $moritz) = @_;

oder auch
Code (perl): (dl )
1
2
sub opdir{
    my @feld = @_;

Das my $Dir in sub opdir kommt übrigens nicht mit dem am Anfang in Konflikt, und auch nicht mit dem aus früheren - noch nicht abgeschlossenen - Aufrufen von opdir. Das ist wichtig für die Rekursion. Es maskiert das alte nur, bis es (spätestens) am Ende der sub stirbt, wodurch der vorherige Wert wieder sichtbar wird.

Noch ein paar Tipps:

Lass das & beim Aufruf von Unterprogrammen weg. Es ist total veraltet und kann außerdem Ärger machen.

In sub opfile schreibe besser $file statt $Dir - schließlich ist es keine Directory.

Überarbeite mal deine Einrückung in sub opdir. Im Moment sieht's wie Kraut und Rüben aus. in sub opfile ist es schon viel besser.

Zum Testen drucke am Anfang von sub opfile den empfangenen Filenamen und mache danach sofort return. Wenn die Rekursion steht, ist es Zeit, dich um den Inhalt der Datei zu kümmern.
Gruß
GUIfreund

View full thread Dir ohne Unterordner in .txt Datei u.ä.. Wie?