请教unless和if not的区别

请教unless和if not的区别

$ cat input
foo



bar

$ perl -ne 'print unless /^$/../^$/' input
foo
bar

$ perl -ne 'print if ! /^$/../^$/' input
foo

bar

之前一直把unless和if !看成是一样的。没想到还有区别,但是没看懂这区别。还请大家指点一下。谢谢!
你加上 () 试试?

它两个是一样的
! 比 .. 优先


QUOTE:
原帖由 cobrawgl 于 2008-12-13 17:13 发表
! 比 .. 优先

请问这跟优先级有什么关系呢?
有关系的
因为! 的优先高 那么'print if ! /^$/../^$/' 的意思就是
遇到非空行开始输出(满足!/^$/)   输出foo
遇到空行停止(满足/^$/)  输出一空行
又遇到非空行开始输出(满足!/^$/) 输出bar

明白了。谢谢 DQP 的详细解答。谢谢 cobrawgl 的指点。谢谢CU,呵呵


QUOTE:
原帖由 cobrawgl 于 2008-12-13 17:13 发表
! 比 .. 优先

学习