Perl-Skript rekursiv anwenden

nidhoegg

Aktives Mitglied
Thread Starter
Dabei seit
18.07.2004
Beiträge
803
Reaktionspunkte
1
Hallo, ich habe mir ein Skript geschrieben, welches alle use- Anweisungen aus den .pl-Dateien eines Verzeichnisses herausziehen soll. Das funktioniert auch soweit gut.
Jetzt möchte ich gerne, dass das auch rekursiv funktioniert, aber leider bekomme ich in mein Output-File gar nichts hineingeschrieben.
Code:
open (EXF, ">>results.txt");
use File::Find;

sub erst () {
	@liste = glob ("*.pm");
	# Alles includes finden und in Datei schreiben
	foreach (@liste){
		open (INLIST, "$_");
		print (EXF "$_ :\n");
		while (<INLIST>){
			if ($_ =~ /use/ && !($_ =~ /strict;/) && !(/^#/) ){
				print (EXF);
			}
		}
		print(EXF "\n");
	}
}
# das root-Verzeichnis heisst "tests"
find (\&erst, 'tests');
Die Idee mit dem "find" habe ich aus dem Perl-Kochbuch.
Hat jemand eine Idee, was falsch läuft?

Grüße, nidhoegg
 
Und wo soll da die Rekursion sein?

Alex

Die steckt wenn ich das richtig verstanden habe, in der find-Funktion. Diese sollte die übergebene Funktion "erst" rekursiv im Verzeichnisbaum unterhalb von "tests" ausführen…

Gruß, nidhoegg
 
Zurück
Oben Unten