2010年8月26日星期四

Re: [PerlChina] Re: 关于~~的'交换律'

很有可能。。。。
所以说这可能是个bug?
This is perl 5, version 12, subversion 1 (v5.12.1) built for
i686-linux-debug
(with 9 registered patches, see perl -V for more detail)

Copyright 1987-2010, Larry Wall

On Thu, 26 Aug 2010 16:31:47 +0800, hironics <dingzezhu@gmail.com> wrote:

> 是不是版本的问题
>
> 我在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 <jeova.sanctus.u...@gmail.com> 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/
>


--
Using Opera's revolutionary email client: http://www.opera.com/mail/

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

没有评论: