my $to_write = length($data); my $offset = 0; while ($to_write > 0) { my $written = syswrite($fh, $data, $to_write, $offset); die("Unable to write to ...: $!\n") if not defined $written; $to_write -= $written; $offset += $written; }