Perl 的“行号精灵”:揭秘特殊变量 `$.` 的奥秘与应用148
在Perl的浩瀚宇宙中,有无数奇特的星辰,它们各自拥有独特的力量和用途。今天,我们要探索的是一颗看似不起眼,实则强大无比的“小星辰”——特殊变量 `$.`。它常被誉为Perl的“行号精灵”,默默无闻地记录着我们处理输入时的点滴足迹。如果你经常与文本文件打交道,或者需要根据行号进行特定操作,那么 `$.` 绝对是你不可或缺的得力助手。
那么,`$.` 究竟是什么呢?简单来说,`$.` 代表的是当前文件句柄所读取的输入行号(Input Line Number)。每当你从一个文件句柄中读取一行(或一个记录),`$.` 的值就会自动递增。它就像一个计数器,忠实地记录着你已经“翻阅”了多少页。
要理解 `$.` 的运作机制,我们首先要区分几种常见的输入方式:
默认文件句柄(`ARGV` 或 Diamond Operator ``):当你使用 `while ()` 这样的结构时,Perl会遍历 `ARGV` 数组(通常是命令行传入的文件名)。`$.` 在这种情况下会为每个新打开的文件自动重置为1。这意味着,如果你处理 `` 和 ``,`` 的第一行会使 `$.` 变为1,当 `` 处理完毕切换到 `` 时,`` 的第一行又会使 `$.` 再次变为1。这是一个非常重要的特性,常常令初学者感到困惑。
标准输入(`STDIN`):当你使用 `while ()` 从标准输入读取时,`$.` 仅对 `STDIN` 有效,从1开始递增,直到输入结束。
显式文件句柄:当你通过 `open` 函数打开一个文件句柄(例如 `my $fh; open $fh, '
2025-11-10
JavaScript 字符串截取神器:深入解析 substring(),兼谈与 slice()、substr() 的异同
https://jb123.cn/javascript/72646.html
告别硬编码!用脚本语言打造灵活高效的Web参数配置之道
https://jb123.cn/jiaobenyuyan/72645.html
JavaScript数字键盘事件:精准捕获与优雅控制,提升用户体验的秘密武器!
https://jb123.cn/javascript/72644.html
后端利器大盘点:选择最适合你的服务器脚本语言!
https://jb123.cn/jiaobenyuyan/72643.html
Python学习之路:从入门到精通,经典书籍助你进阶!
https://jb123.cn/python/72642.html
热门文章
深入解读 Perl 中的引用类型
https://jb123.cn/perl/20609.html
高阶 Perl 中的进阶用法
https://jb123.cn/perl/12757.html
Perl 的模块化编程
https://jb123.cn/perl/22248.html
如何使用 Perl 有效去除字符串中的空格
https://jb123.cn/perl/10500.html
如何使用 Perl 处理容错
https://jb123.cn/perl/24329.html