Im Gegensatz zu anderen Datei-Funktionen wie open/close/seek
… etc., muß man bei truncate scheinbar den Dateihandle
immer direkt angeben, kann ihn nicht in eine Variable packen
Weiß jemand warum das so ist und wie man dies umgehen kann
(also truncate aufrufen ohne das Deiteihandle direkt
anzugeben) ?
Hmmm…
ich habe gerade mal folgendes q&d getestet.
open($IN, „+>“, „myfile“) or die $!;
print $IN „Hallo Welt\n“;
truncate($IN, 2) or die $!;
Und es klappt.
Ahh ich sehe was du gemacht hast.
($d=DATEIH:wink:
du solltest nicht das HANDLE in die Variable schieben sonder eine Referenz auf das HANDLE.
Mein Code also anders.
open(IN, „+>“, „myfile“) or die $!;
$IN = *IN;
print $IN „Hallo Welt\n“;
truncate($IN, 2) or die $!;
Beachte jedoch das du nicht in diesem Fall nicht direkt eine Referenz auf das Filehandle angelegt hast, sondern einen TypGLOB Referenz.
IMHO ist mein erster Code sinnvoller. Warum erst ein Dateihandle erzeugen um es anschließend als Referenz in eine Variable zu schieben, wenn mann es gleich in eine Variable schieben kann.
cu
polarix