任何人可以用一些例子显示..和…运算符之间的确切差异?
从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 /返回false。
> ..返回false。
>“01 – 酒吧”
> / 0 /返回true。翻转!
> / 1 /返回true。翻牌! ⇐
> ..返回true(因为第一个检查为真)。
>“1-Baz”
> / 0 /返回false。
> ..返回false。
>“ – Quux”
> / 0 /返回false。
> ..返回false。
用«…»,
>“ – Foo”
> / 0 /返回false。
> … returns false。
>“01 – 酒吧”
> / 0 /返回true。翻转!
> …返回true。
>“1-Baz”
> / 1 /返回true。翻牌!
> …返回true。
>“ – Quux”
> / 0 /返回false。> … returns false。