Perl-Skript rekursiv anwenden

nidhoegg

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
 
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