User since
2003-08-04
7321
Artikel
ModeratorIn
hi.
ich würde gerne files, die auf eine bestimmte Endung enden und ein gewisses modified datum überschritten haben, löschen.
Momentan mach ich das mit opendir, readdir und stat (wobei ich nicht alle files einlese, sondern quasi iteriere und dann lösche). Jetzt seh ich hier immer wieder die Verwenung von glob; kann man das damit auch machen (hab es leider noch nicht verwendet, und werde auch nicht wirklich daraus schlau) und hat es Vorteile? Das ganze soll am Ende schnell sein; nichts anderes!
User since
2003-11-28
3645
Artikel
ModeratorIn
Schreib einen Benchmark! opendir/readdir ist naeher am System, also theoretisch schneller. glob() hat einige Eigenheiten, die es nicht fuer Systeme tauglich machen, bei denen gerne Shell-Metazeichen verwendet werden (z.B. Leerzeichen). Wenn's mit opendir bei dir funktioniert, wuerde ich es dabei lassen.
User since
2003-08-04
7321
Artikel
ModeratorIn
ei gut. danke. so gefällt mir das! :)
User since
2003-08-04
7321
Artikel
ModeratorIn
passt am Rande hierher:
kann man File::find abgewöhnen, dass es rekursiv arbeitet?
User since
2003-08-04
12208
Artikel
Admin1
du könntest sowas machen:
find ({
wanted => \&wanted,
preprocess =>sub{ @_ = grep !-d, @_ }
}, "dir");
User since
2003-11-28
3645
Artikel
ModeratorIn
Jemand koennte ja -mindepth und -maxdepth fuer find2perl implementieren :-)
User since
2005-02-01
181
Artikel
BenutzerIn
Falls Du das unter Windows machst, könnte auch noch folgendes gehen:
my @files = `dir /B /S $root\\*.$ext`;
foreach my $file (@files) {
chomp $file;
if (-M $file > $timelimit)
unlink ($file);
}
Gruß
Thomas
User since
2003-08-04
7321
Artikel
ModeratorIn
@sesth:
nö, sowas fangen wir gar nicht erst an :)
aber danke!