Perl三点运算符......例子

kob*_*ame 28 perl

任何人都可以通过一些例子展示.....运营商之间的确切区别吗?

perlop手册页:

如果您不希望它在下一次评估之前测试正确的操作数,就像在sed中一样,只需使用三个点("...")而不是两个.

但到底是什么意思呢?我不明白perlop的例子:

@lines = ("   - Foo",
          "01 - Bar",
          "1  - Baz",
          "   - Quux"
);
foreach (@lines) {
    if (/0/ .. /1/) {
        print "$_\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

...将打印Baz-但为什么呢?更确切地说,为什么Baz不打印两个点而只有...

ike*_*ami 15

« ...»在真正的翻转检查后,不会立即进行翻牌检查.

用« ..»,

  1. " - Foo"
    1. /0/ 返回false.
    2. .. 返回false.
  2. "01 - Bar"
    1. /0/返回true.翻转!
    2. /1/返回true.翻牌!
    3. .. 返回true(因为第一次检查是真的).
  3. "1 - Baz"
    1. /0/ 返回false.
    2. .. 返回false.
  4. " - Quux"
    1. /0/ 返回false.
    2. .. 返回false.

用« ...»,

  1. " - Foo"
    1. /0/ 返回false.
    2. ... 返回false.
  2. "01 - Bar"
    1. /0/返回true.翻转!
    2. ... 返回true.
  3. "1 - Baz"
    1. /1/返回true.翻牌!
    2. ... 返回true.
  4. " - Quux"
    1. /0/ 返回false.
    2. ... 返回false.