You are viewing the version of this documentation from Perl blead. This is the main development branch of Perl. (git commit 3e583379b728a24083f038dcd7c98f77b1aae4b2)
tell FILEHANDLE
tell

Returns the current position in bytes for FILEHANDLE, or -1 on error. FILEHANDLE may be an expression whose value gives the name of the actual filehandle. If FILEHANDLE is omitted, assumes the file last read.

Note the emphasis on bytes: even if the filehandle has been set to operate on characters (for example using the :encoding(UTF-8) I/O layer), the seek, tell, and sysseek family of functions use byte offsets, not character offsets, because seeking to a character offset would be very slow in a UTF-8 file.

The return value of tell for the standard streams like the STDIN depends on the operating system: it may return -1 or something else. tell on pipes, fifos, and sockets usually returns -1.

There is no systell function. Use sysseek($fh, 0, 1) for that.

Do not use tell (or other buffered I/O operations) on a filehandle that has been manipulated by sysread, syswrite, or sysseek. Those functions ignore the buffering, while tell does not.