http://www.perlmonks.org?node_id=1019529


in reply to Re^4: Empty File Contents before writing
in thread Empty File Contnts before writing

The help for truncate says

The position in the file of FILEHANDLE is left unchanged. You may want + to call seek before writing to the file.

So, any ideas why your code works without needing a seek 0?

Replies are listed 'Best First'.
Re^6: Empty File Contents before writing
by johngg (Canon) on Feb 19, 2013 at 14:37 UTC

    You are right. I hadn't read the documentation carefully enough and hadn't spotted that. Running hexdump -C shows that a seek is indeed necessary.

    $ perl -Mstrict -Mwarnings -e ' > open my $fh, q{>}, q{rubbish} or die $!; > print $fh qq{A longish line of text\n}; > truncate $fh, 0 or die $!; > print $fh qq{Short\n}; > close $fh or die $!;' $ cat rubbish Short $ hexdump -C rubbish 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |......... +.......| 00000010 00 00 00 00 00 00 00 53 68 6f 72 74 0a |.......Sh +ort.| 0000001d $

    Thank you for the correction.

    Cheers,

    JohnGG