Leser: 2
|< 1 2 3 4 >| | 32 Einträge, 4 Seiten |
QuoteIch würde zunächst die Dateien des Verzeichnisses einlesen (siehe perldoc -f opendir und perldoc -f readdir), dann den Status zu jeder Datei ermitteln (siehe perldoc -f stat) und dann eine entsprechende Vergleichsfunktion fürs Sortieren schreiben und mit deren Hilfe die Dateien sortieren (siehe perldoc -f sort).
Denk dran, dass Du dann beide Arrays sortieren musst, insofern Du keinen AoH genommen hast, um Dateinamen und Änderungszeitpunkt beisammen zu halten.
Falls Dir diese Tipps nicht reichen sag Bescheid, dann mach ich ein kleines Programm daraus.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/perl -w
use strict;
use warnings;
use Tk;
use File::stat;
my $dirprefix="/home/ich";
my $mw = MainWindow->new();
my $liste = $mw->ScrlListbox ( -label=>"Listen-Ausgabe" ,-background=>"grey"
,-relief=>"sunken" )->pack();
my $exitButton = $mw->Button( -text=>"Exit", -command=>"exit")->pack();
my $einleseButton = $mw->Button( -text=>"Einlesen" ,-command=>\&fill_in)->pack();
MainLoop;
sub fill_in {
my $elem;
my @allfiles;
my $sb;
opendir DIR, $dirprefix;
@allfiles = sort { -M $a <=> -M $b} readdir DIR; ### hier ist Zeile 32 !!!!!
closedir DIR;
#foreach $elem (@allfiles) {
# $sb = stat($elem);
# printf "File %s \t mtime %s\n", $elem, $sb->size;
#}
$liste->delete(0,"end");
foreach $elem (@allfiles) {
#if ( $elem =~ /\.html/ ) {
$liste->insert("end",$elem);
#print "$elem\n";
#}
}
}## fill_in
1
2
3
opendir DIR, $dirprefix;
@allfiles = sort { -M "$dirprefix/$a" <=> -M "$dirprefix/$b"} readdir DIR;
closedir DIR;
|< 1 2 3 4 >| | 32 Einträge, 4 Seiten |