PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PERL] Archive::Zip



the_brain
05-01-2004, 12:02
Hallo,

Ich benutze folgenden Codeschnipsel um alle verfügbaren Maps auf einem Gameserver (Quake3-basierend) aus den pk3-Dateien zu lesen:



foreach (@files){
if ($_ !~ /$ext$/){ next; }
my $zip = Archive::Zip->new($_);
Lanas::Debug->debug("Lese ZIP-Datei ein",4);
my @names = $zip->memberNames();
Lanas::Debug->debug( scalar (@names)." Einträge gefunden - Einlesen fertig.",4);
foreach (@names){
if ($_ =~ /$map_ext$/){
my @datafield = split (/\//, $_);
my $name = pop @datafield;
$name =~ s,^$cutoff,,i if ($cutoff);
$name =~ s,$cutoff_ext$,,i if ($cutoff_ext);
push (@$maps, $name);
}
}
}


O.a. Codeschnipsel tut zwar gute Dienste, aber ich will aus den betroffenen Zip-Files nur Dateien mit bestimmen Endungen (*.bsp) haben - geht das irgendwie schneller?

Denn bei Dateien mit z.B. 12000 Einträgen wird das Verfahren echt lahm.

Gruss
Martin