syswrite FILEHANDLE,SCALAR,LENGTH,OFFSET
syswrite FILEHANDLE,SCALAR,LENGTH
syswrite FILEHANDLE,SCALAR

嘗試使用 write(2) 將變數 SCALAR 的 LENGTH 位元組資料寫入指定的 FILEHANDLE 中。如果未指定 LENGTH,則會寫入整個 SCALAR。它會略過任何 PerlIO 層,包括緩衝式 IO(但會受到 :utf8 層的存在影響,如下所述),因此將此與讀取(sysread) 除外)、printwriteseektelleof 混合使用可能會造成混淆,因為 :perlio:crlf 層通常會緩衝資料。傳回實際寫入的位元組數,或在發生錯誤時傳回 undef(在此情況下,errno 變數 $! 也會設定)。如果 LENGTH 大於 OFFSET 之後 SCALAR 中可用的資料,則只會寫入可用的資料量。

可以指定 OFFSET 來從字串中除了開頭以外的部分寫入資料。負的 OFFSET 指定從字串結尾倒數寫入這麼多個字元。如果 SCALAR 的長度為零,則只能使用 OFFSET 0。

警告:如果檔案句柄標記為 :utf8syswrite 會引發例外。:encoding(...) 層會隱含地引入 :utf8 層。或者,如果句柄未標記為編碼,但您嘗試寫入碼點大於 255 的字元,則會引發例外。請參閱 binmodeopenopen 實用程式。