关于Perl的范围操作符

关于Perl的范围操作符

my @lines = ("   - Foo",
             "01 - Bar",
             "1  - Baz",
             "11 - Quux");

foreach (@lines) {
   if (/0/ ... /1/) {
      print "$_\n";
   }
}


RESULT:

[Copy to clipboard] [ - ]
CODE:
D:\>perl -w kkk.txt
01 - Bar
1  - Baz

如果你不想拖到下一次计算中才测试右操作数(也是 sed 的范围操作符的工作方式),只需要用三个点(...)代替两个点(..)。
                                                                                                        ----------摘自《大骆驼》
如果是".."的话,直接看到"01"就结束了。换为"..."后为何偏偏第二次碰到1的时候结束?一直看到最后一个"1"时结束不行吗?上面摘自《大骆驼》书的一段似乎没有讲清楚呀。请您赐教!

因为 "01 - Bar" 里面不仅有 0,也有 1。
所以如果不用三个点而用两个点的话,就会同时匹配左右操作数。
老大真快,我还再编辑帖子呢

“如果你不想拖到下一次计算中才测试右操作数(也是 sed 的范围操作符的工作方式),只需要用三个点(...)代替两个点(..)”   
通过运行结果比较,我猜测出来"..."的用法了,只是紧扣书上的“下一次计算”,不能很好理解,呵呵!
谢谢FLW版主

你把那段话多看几遍就明白了。