Thread Neueste Datei in einem Verzeichnis finden (14 answers)
Opened by krusty at 2007-05-29 16:17

Dubu
 2007-05-31 02:42
#77048 #77048
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=vayu,29.05.2007, 15:53]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
my $dir = "verzeichnis";

my $latest = (
   map{
       $_->[0]
   }
   sort{
       $a->[1] <=> $b->[1]
   }
   map{
       [$_, -M $_]
   }
   grep {
       -f $_
   }
   glob(
        $dir."*"))[0];
   
print $latest;
[/quote]

Mir ist etwas unwohl dabei, eine Liste komplett zu sortieren, wenn man nur das größte oder kleinste Element sucht. Obwohl die Schwartzsche Transformation immer wieder cool aussieht, täte es hier vielleicht auch eine simple, kleine Schleife, wie man sie so ähnlich (und damit ziemlich "un-perlisch") auch in C machen würde ...
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl
use strict;
use warnings;

my $dir = '/home/harald';

my ($newest_file, $newest_date);
for my $entry (glob "$dir/*") {
   next unless -f $entry;
   if (!defined $newest_date || -M $entry < $newest_date) {
       $newest_date = -M $entry;
       $newest_file = $entry;
   }
}
if (defined $newest_file) {
   print "Newest: $newest_file\n";
} else {
   print "No files found";
}

View full thread Neueste Datei in einem Verzeichnis finden