Do you get the same problem with syswrite? It doesn't use the buffering system used by print. It might still not work, though, because syswrite is not guaranteed to write everything it is asked to write (in a single call).
my $written = syswrite($test_file, $buf, length($buf));
die("Unable to write to file: $!\n")
if not defined $written;
die("Unable to write whole string in one call\n")
if $written != length($buf);
For comparison, syswrite is normally used as follows:
my $offset = 0;
my $to_write = length($buf);
while ($to_write > 0) {
my $written = syswrite($test_file, $buf, $to_write, $offset);
die("Unable to write to file: $!\n")
if not defined $written;
$to_write -= $written;
$offset += $written;
}
|