阅读此 Perl:从1到n提取行(Windows)我不了解触发器运算符/ readline-counter部分。 通用标签

1
2
3E0

有人可以详细解释这个输出的来源吗?

有帮助吗?

解决方案

引用 perlop

在标量上下文中,“ ..”返回一个 布尔值。操作员是 像触发器一样的双稳态 模拟行范围(逗号) sed awk 和其他各种运算符 编辑。每个“ ..”运算符维护 它自己的布尔状态,甚至跨越 调用包含以下内容的子例程 它。只要它离开就错了 操作数为假。一旦离开 操作数为true,范围运算符 保持正确,直到正确的操作数为 正确,之后是范围运算符 再次变为假。它没有变成 直到下一次错误范围 运算符被评估。它可以测试 正确的操作数,并且在 同样的评估也成为现实(如 awk ),但一次仍返回true。 如果您不希望它测试正确 操作数,直到下一次评估为止 在 sed 中,只需使用三个点(“ ...”) 而不是两个。在所有其他方面, “ ...”的行为就像“ ..”一样。

未评估正确的操作数 当操作员处于“假”状态时 状态,而左操作数不是 当操作员在 “真实”状态。优先是 比||&&低一点。价值 返回的是空字符串 代表假或序列号 (从1开始)为true。的 重置每个的序号 遇到的范围。 最终序列 范围中的数字具有字符串“ E0” ,它不会影响 它的数值,但是给你 要搜索的东西 排除端点。您可以排除 通过等待起点 序列号大于1。

如果标量“ ..”的任何一个操作数是一个 常量表达式,该操作数为 如果相等则视为真(==) 到当前输入行号( $.变量)。

(添加了重点)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top