Was für Perlprogrammierer (glob- Funktion)

Hi zusammen,

schaut mal hier:

Code:
my @ZIPFiles = glob ("$basedir/*.zip");

Diese Zeile liefert mir alle Zip-Files in einem Verzeichnis.
Es gibt aber eine Besonderheit dabei- nur Dateien mit kleingeschriebener Extension wie in diesem Fall. :(

Wenn jetzt aber eine Datei mit z.B. *.Zip vorkommt, dann steht sie nicht in dem Arry. Das ist natürlich doof.

Die Funktion glob kann ich meines Wissens aber nicht mit Parametern versehen um die Groß/Kleinschreibung zu ignorieren.

Hat einer eine Idee dazu?

Es handelt sich um einen Unixserver. Nicht das einer meint mit DOS- Befehlen ankommen zu wollen. ;) :)
 

yul

User
Hallo Wolfgang.

Gleich vorab. Ich hab' mit Perl nur wenig Erfahrung und im Moment auch keine Kiste, an der ich es ausprobieren könnte.

Zu deinem Problem:
glob kann leider nicht mit regexp umgehen. Also das Problem umschiffen.

1. Möglichkeit
Für jede mögliche Schreibweise einen glob Aufruf und die einzelnen Arrays zusammenführen.

2. Möglichkeit
Alle Dateien zurückgeben lassen und dann die passenden Einträge filtern.
my @ZIPFiles = grep( /[zZ][iI][pP]$/, glob("$basedir/*.*"));

Ich hoffe damit kommst du weiter.

Gruß Holger.
 
Hi Holger,

ich führe die Arrays zusammen. Sie funktioniert ja auch, wobei es nicht die glücklichste Lösung ist, aber ok.

Der "glob" hat als einzigstes Sonderzeichen nur den *. Ansonsten keine weiteren Optionen. Schade...

Die 2te ist nicht so ganz final. Grundsätzlich versuche ich weitestgehend alles kompakt in so wenig Zeilen wie möglich zu bringen. Aber manchmal muß es halt so gehen. Zumindest weiß ich die Stellen hinterher und wenn mir mal zufällig was über den Weg läuft kommt es dann eben nachträglich rein.

Ja, vielen Dank jedenfalls.
 
Ansicht hell / dunkel umschalten
Oben Unten