傳回 FILEHANDLE 中目前位置(以位元組為單位),或在發生錯誤時傳回 -1。FILEHANDLE 可以是一個表達式,其值提供實際檔案處理程序的名稱。如果省略 FILEHANDLE,則假設為最後讀取的檔案。
請注意對位元組的強調:即使檔案處理程序已設定為對字元進行操作(例如使用 :encoding(UTF-8)
I/O 層),seek
、tell
和 sysseek
函式家族使用位元組偏移量,而非字元偏移量,因為在 UTF-8 檔案中尋找字元偏移量會非常慢。
對於標準串流(例如 STDIN),tell
的傳回值取決於作業系統:它可能會傳回 -1 或其他內容。tell
在管道、FIFO 和 Socket 上通常會傳回 -1。
沒有 systell
函數。請使用 sysseek($fh, 0, 1)
。
不要對已由 sysread
、syswrite
或 sysseek
處理過的檔案句柄使用 tell
(或其他緩衝 I/O 作業)。這些函數會略過緩衝,而 tell
則不會。