Hallo,
my $filename;
foreach $filename (@array)
ist sicherer
{
if (($_ =~ /.txt$/)&& (300000 < (-s "$_")))
wenn dann
(-s "$dir/$_")
Da $_ nur den Dateinamen, ohne Pfad beinhaltet.
Aber nun
if (($filename =~ /.txt$/)&& (300000 < (-s "$dir/$filename")))
{
my @dummy;
open (DATEI, "$_") || die "Kann Datei nicht oeffnen $!";
Auch hier
open (DATEI, "$dir/$filename") || die "Kann Datei nicht oeffnen $!";
Den Rest spare ich mir, und schreibe:
seek(DATEI,-300000,2); # springe vom Dateiende 300000 Bytes vor
<DATEI>; # die halbe Zeile vergessen wir, wenn DU willst
@dummy = <DATEI>;
close (DATEI);
open (DATEI, ">$dir/$filename") || die "Kann Datei nicht schreiben $!";
print DATEI @dummy;
close(DATEI);
}
}
Ich würde zwar noch mit zwei Dateihandles (IN,OUT) arbeiten, dadurch könnte ich mir @dummy sparen, aber das ist schon ein bißchen Geschmacksfrage.
Grüße
Klaus