Hi,
ich möchte dir noch ein anderes Script zeigen, wo aber das gleiche Problem auftritt, aber diesmal habe ich > statt gt usw genommen. Einer, der beiden Dateien, die im Ornder bleibt, ist trotzdem falsch (also ist nicht die letzte und vorletzt , sondern meistens die letzte und irgend eine andere.)
#!/usr/bin/perl -w
use strict;
my $leseordner = '.';
my $schreibordner = 'neuer';
my @array;
#my $vorletzte_datei = 0;
my $dateizaehler = 0;
my $i = 0;
my $hoechste = 0;
my $neueste_datei = 0;
my @dateiliste;
opendir(DIR,$leseordner) or die "Kann Leseordner nicht oeffnen : $!\n";
while (defined(my $file = readdir(DIR))) {
if ($file =~ /^(\d+?_)(\d+?)(..{1,5})$/) {
push @dateiliste, $file;
$array[$i][0] = $1;
$array[$i][1] = $2;
$array[$i][2] = $3;
open(FILE,"$leseordner/$file") or die "Kann $file nicht oeffnen : $!\n";
local $/;
my $inhalt = <FILE>;
close FILE;
$array[$i][3] = $inhalt;
$i++;
$dateizaehler++;
}
}
closedir DIR;
for (my $i = 0; $i < $dateizaehler; $i++) {
if ($array[$i][1] > $hoechste) {
$hoechste = $array[$i][1];
# $vorletzte_datei = $neueste_datei;
$neueste_datei = $array[$i][0].$array[$i][1].$array[$i][2];
}
}
$i = 0;
foreach my $file(@dateiliste) {
if ($file ne $neueste_datei) {
# if ($file ne $vorletzte_datei) {
open(FILE,">$schreibordner/$file") or die "Kann $file nicht in neuen Ordner schreiben : $!\n";
flock FILE, 2;
print FILE $array[$i][3];
close FILE;
unlink "$leseordner/$file";
# }
}
$i++;
}
$xNeTworKx.