访问的最后一个文件句柄的当前行号。
Perl 中的每个文件句柄都会计数从中读取的行数。(根据 $/
的值,Perl 对行内容的理解可能与你的理解不符。)当从文件句柄中读取一行(通过 readline()
或 <>
),或在文件句柄上调用 tell()
或 seek()
时,$.
会成为该文件句柄的行计数器的别名。
你可以通过赋值给 $.
来调整计数器,但这不会实际移动搜索指针。对 $.
进行局部化不会对文件句柄的行计数进行局部化。相反,它会对 Perl $.
当前别名指向的文件句柄进行局部化。
当文件句柄关闭时,$.
将重置,但当未进行 close()
干预的情况下重新打开一个打开的文件句柄时,不会重置。有关更多详细信息,请参阅 perlop 中的 “I/O 运算符”。由于 <>
从不执行显式关闭,行号会跨 ARGV
文件增加(但请参阅 perlfunc 中 “eof” 中的示例)。
您还可以使用 HANDLE->input_line_number(EXPR)
访问给定文件句柄的行计数器,而无需担心上次访问哪个句柄。
助记符:许多程序使用 “.” 来表示当前行号。