Problem mit Perl-Skript

Diskutiere Problem mit Perl-Skript im Programmierung Forum im Bereich Software Forum; Hallo. Ich bin ein noch ein blutiger Perl-Anfänger und versuche ein kleines Skript zur Suche nach Dateien unter Verwendung einer rekursiven...
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.
 
S

SteinBeiser

Dabei seit
14.02.2007
Beiträge
74
Unter windoof laut SelfHTML

glob - Dateien mit Wildcards auswählen

Wählt aus einem Verzeichnis alle Dateien aus, die einem bestimmten Dateinamenmuster entsprechen. Das ist wesentlich einfacher als das Operieren mit den Funktionen Seite opendir, Seite readdir und Seite closedir. Der Nachteil von glob ist allerdings, dass diese Funktion eine Unix-Shell startet, um an ihr Ergebnis zu kommen. Die Funktion ist daher nur auf Unix-Systemen verfügbar, und ausführbar ist sie auch nur, wenn das Script ausreichende Rechte zum Starten der Shell besitzt. Es gibt jedoch bei den Seite Standardmodulen für Dateiverwaltung ein Modul, das den glob-Algorithmus komplett in Perl ausführt.

unter linux:
#!/usr/bin/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;
local @dir;

chdir($_[0]);
foreach $i (glob("$reg"))
{ print $i."\n"; }

unless(opendir(DIR, $_[0]))
{ return "konnte Verzeichnis ".$_[0]." nicht oeffnen"; }
@dir = readdir(DIR);
closedir(DIR);
foreach( @dir )
{
$j = $_;
####print $_[0]."/".$j."\n";

if((-d $_[0]."/".$j) and ($j ne ".") and ($j ne ".."))
{
search($_[0]."/".$j);
}
}
print "verlasse ".$_[0]."\n";
}
 
L

Lord Muldisoft

Threadstarter
Dabei seit
04.04.2007
Beiträge
12
Vielen Dank. Das hat mir sehr geholfen.
 
Thema:

Problem mit Perl-Skript

Problem mit Perl-Skript - Ähnliche Themen

Windows Store Broken: If you search for Windows Store broken you find A LOT of Questions and (useless) answers, so no answer helped I am looking for support here...
FritzBox 7270 - apache Webserver: Hallo, ich versuche gerade über diese Beschreibung einen Webserver auf die Fritzbox zu installieren. Folgendes ist bislang erfolgt: - Apache...
Rundll32.exe stellt großes Problem dar: Hallo und einen guten Tag. Ich schaue nun schon seit einer woche in verschiedenen Foren und Webeinträgen nach meinem Fehler. Folgender: Immer...
Bitte um Bios Hilfe ( Update): Hallo Forum Mitte um versierte Anleitung wenn Möglich! mein Problem : Ich habe vor einem Monat einen PC- Absturz gehabt weil ich auf 2 GB Ram...
GELÖST Drag and Drop funktioniert nach update auf SP3 nicht mehr: Hallo liebe Leute, nichts Böses ahnend mache ich das lang angekündigte SP3 Update auf meinem Notebook. Update lief ohne Fehlermeldung oder...
Oben