L
Lord Muldisoft
Threadstarter
- Dabei seit
- 04.04.2007
- Beiträge
- 12
Hallo. Ich bin ein noch ein blutiger Perl-Anfänger und versuche ein kleines Skript zur Suche nach Dateien unter Verwendung einer rekursiven Subroutine zu schreiben. Ich finde aber einfach nicht heraus, warum es nicht funktioniert - wenn ich das Skript starte testet er zwar eine "Pfadlinie" durch, aber der Rest (der ja eigentlich nach Rückkehr in den jeweiligen Abschnitt der rekursiven Subroutine ausgeführt werden sollte) wird merkwürdiger Weise nicht erreicht.
Hier erstmal das Programm:
#C:\Programme\perl -w
print "Suche alle Dateien mit der Endung: ";
$reg = "*.".<STDIN>;
chomp($reg);
print "Suche in Verzeichnis: ";
$dir = <STDIN>;
chomp($dir);
search($dir);
sub search
{
print "betrete $_[0]\n";
local $j;
local $i;
chdir($_[0]);
foreach $i (glob("$reg"))
{
print $i."\n";
}
unless(opendir(DIR, $_[0]))
{
return "konnte Verzeichnis ".$_[0]." nicht oeffnen";
}
while(defined($j = readdir(DIR)))
{
print $j."\n";
if((-d $j) and ($j ne ".") and ($j ne ".."))
{
search($_[0]."\\".$j);
}
}
closedir(DIR);
print "verlasse ".$_[0]."\n";
}
Kann mir jemand bei meinem Problem helfen? Sicherlich ist es bloß so ein blöder Anfängerfehler, aber ich komme einfach nicht drauf.
Hier erstmal das Programm:
#C:\Programme\perl -w
print "Suche alle Dateien mit der Endung: ";
$reg = "*.".<STDIN>;
chomp($reg);
print "Suche in Verzeichnis: ";
$dir = <STDIN>;
chomp($dir);
search($dir);
sub search
{
print "betrete $_[0]\n";
local $j;
local $i;
chdir($_[0]);
foreach $i (glob("$reg"))
{
print $i."\n";
}
unless(opendir(DIR, $_[0]))
{
return "konnte Verzeichnis ".$_[0]." nicht oeffnen";
}
while(defined($j = readdir(DIR)))
{
print $j."\n";
if((-d $j) and ($j ne ".") and ($j ne ".."))
{
search($_[0]."\\".$j);
}
}
closedir(DIR);
print "verlasse ".$_[0]."\n";
}
Kann mir jemand bei meinem Problem helfen? Sicherlich ist es bloß so ein blöder Anfängerfehler, aber ich komme einfach nicht drauf.