← eetop.cn_Perl语言入门(第四版小骆驼书)

推荐答案 测试一下

6.1 Perl最常用的默认变量 :$_................................ ................................ ................................ …

问答题 中等 经典问答问答题

参考答案

$_是Perl中最常用的默认变量,它被称为“默认输入和模式匹配空间”。在多种上下文中,Perl会自动将操作数设置为$_,从而简化代码。 **主要用途包括:** 1. **文件读取**:`while(<>)`会从文件句柄读取一行并存入$_,此时`print`不带参数默认输出$_。 2. **正则匹配**:`/pattern/`默认对$_进行匹配,`s/old/new/`替换操作也默认作用于$_。 3. **循环迭代**:`foreach`循环中,若未指定迭代变量,则当前元素自动赋值给$_。`for`列表也类似。 4. **函数默认参数**:许多函数(如`chomp`、`split`)省略参数时默认操作$_。 5. **模式匹配后的特殊变量**:匹配成功后,`$&`(匹配内容)、`$`'(匹配前字符串)、`$'`(匹配后字符串)也关联到$_。 **易错点:** - $_是一个全局变量(实际上是包变量),但内建函数如`while(<>)`会在局部范围内动态修改它,而不污染外层作用域。但在子程序中未使用`local`时,修改$_会影响调用方。 - 在模块或复杂代码中,避免过度依赖$_,否则代码可读性差且可能引发意外副作用。 - `foreach`循环中的$_是隐式别名的,修改它会改变原列表元素;而`while(<>)`中$_是标量,修改不会影响文件内容。 **示例:** ```perl while(<>) { chomp; # 等价于 chomp($_); print if /error/; # 等价于 print $_ if $_ =~ /error/; } ``` 综上,$_是一个强大的默认变量,正确使用可以极大简化Perl代码,但必须注意作用域和别名的特性。

涉及知识点

  • IC 基础
  • 数字电路
  • 设计与验证
← 上一题
登录后反馈错题
下一题 →