#!/usr/bin/perl use strict; use warnings; use Win32::FileTime; sub modify_timestamp { my $filename = shift; my $filetime = Win32::FileTime->new( $filename ); my $filestamp = sprintf( "%04d%02d%02d%02d%02d%02d.%d", $filetime->Modify( 'year', 'month', 'day', 'hour', 'minute', 'second', 'msecond' ) ); return $filestamp; } my @files = glob("*.txt"); # alle Dateien des Verzeichnisses z einlesen # Array @files wird sortiert @files = sort { # Sortieren modify_timestamp($a) < modify_timestamp($b) # Sortierkriterium } @files; # neueste Datei ist ganz am Anfang des Arrays # und wird in Variable gespeichert my $newest = shift @files; print "Keeping: $newest with timestamp ",modify_timestamp($newest),"\n"; # Debugausgabe # der Rest der Dateinamen ist in @files for my $file (@files) { print "deleting $file with timestamp ", modify_timestamp($file), "\n"; # Debugausgabe unlink ($file) or warn "Cant delete $file \n"; # Datei löschen }