Hallo,
meistens ist der Fehler eine Linie vorher, vielleicht fehlt nur ein semikolon oder es sind nicht alle klammern vorhanden??
nein, aber das komische ist, wenn ich diese Zeile so schreibe : if ("$array[$i][1]" gt "$hoechste") { , steht nur mehr Use of uninitialized String at line 34 statt ...in string gt .... da.
Dann wenn ich die obere Zeile zu for (my $i = 0; $i le $dateizaehler; $i++) { #(le statt <=), dann kommt zwar keine Fehlermeldung mehr, aber er gibt nur mehr 3 x die Schleife statt 11 mal aus.
Was ist da eigentlich los ?
Ich poste mal das ganze Script bis zu der Stelle :
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 le $dateizaehler; $i++) {
if ("$array[$i][1]" gt "$hoechste") {
$hoechste = $array[$i][1];
$neueste_datei = $array[$i][0].$array[$i][1].$array[$i][2];
}
print "$array[$i][1]\n";
}
print $neueste_datei;