Perl 三点运算符...示例

标签 perl

任何人都可以用一些例子来说明 .. 之间的确切区别吗?和 ...运算符(operator)?

来自 perlop手册页:

If you don't want it to test the right operand until the next evaluation, as in sed, just use three dots ("...") instead of two.



但这究竟是什么意思?我不明白 perlop 的例子:
@lines = ("   - Foo",
          "01 - Bar",
          "1  - Baz",
          "   - Quux"
);
foreach (@lines) {
    if (/0/ .. /1/) {
        print "$_\n";
    }
}

...将打印 Baz - 但为什么?更准确地说,为什么是 Baz没有打印两个点,只有 ... ?

最佳答案

« ... » 在真正的翻牌过牌后不会立即进行翻牌过牌。

与« .. »,

  • " - Foo"
  • /0/返回假。
  • ..返回假。
  • "01 - Bar"
  • /0/返回真。翻动!
  • /1/返回真。翻牌!
  • ..返回真(因为第一次检查为真)。
  • "1 - Baz"
  • /0/返回假。
  • ..返回假。
  • " - Quux"
  • /0/返回假。
  • ..返回假。

  • 与« ... »,
  • " - Foo"
  • /0/返回假。
  • ...返回假。
  • "01 - Bar"
  • /0/返回真。翻动!
  • ...返回真。
  • "1 - Baz"
  • /1/返回真。翻牌!
  • ...返回真。
  • " - Quux"
  • /0/返回假。
  • ...返回假。
  • 关于Perl 三点运算符...示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11021512/

    相关文章:

    perl - 在文件中的指定行之后插入文本

    arrays - 打印哈希的 Perl 哈希

    regex - 与/g 修饰符一起使用时级联正则表达式不匹配

    regex - Perl 当前(5.8 和 5.10)是否对将使用的顺序交替做出任何 promise ?

    perl - vim:交互式搜索并替换为与 perl 兼容的正则表达式

    perl - Perl 有哪些优雅的特性或用途?

    multithreading - 使用线程读取输入时缺少字符

    regex - 模式也匹配连字符

    linux - 什么是 '! -e "/etc/httpd "' in Perl in ' if' 条件

    perl - 如何使用我自己编译的 Perl 中供应商打包的模块?