是不是版本的问题 我在Linux上,输出为 @c ~~ a a ~~ @c
Perl版本信息: This is perl, v5.10.0 built for i486-linux-gnu-thread-multi Copyright 1987-2007, Larry Wall On Aug 25, 3:58 pm, chenfengyuan <[email protected]> wrote: > 大家好:)我有一个关于~~的问题: > 关于 $a ~~ $b是否与$b ~~ $a等价 > 书上(learning perl > 5th中文版,236页)上说是符合'交换律'的,所以可以交换,即等价。 > perlsyn上也说'For example, the smart match operator short-circuits > whenever possible, but "grep" does not.' > 这里是说~~'短视',所以$a和$b的顺序无关吧。 > > 实际中 > > use warnings; > use strict; > use 5.010; > > my @c=qw/a b/; > if(@c ~~ 'a'){ > say '@c ~~ a';} > > if('a' ~~ @c){ > say 'a ~~ @c'; > > } > > 运行显示'a ~~ @c' > 即$a ~~ $a与$b ~~ $a不等价 > 问题: > 1 那么为啥不等价?是本来就不可以交换还是什么? > 2 如果说'a' ~~ @c,是...@c中有没有一个元素是'a',那...@c ~~ 'a'是啥意思? > > 谢谢:) > -- > Using Opera's revolutionary email client:http://www.opera.com/mail/ -- 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。 要向此网上论坛发帖,请发送电子邮件至 [email protected]。 要取消订阅此网上论坛,请发送电子邮件至 [email protected]。 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
