给力

在 2012年11月1日 下午8:45,Jacky Xu <x2x4...@gmail.com>写道:

> 深刻,给力。
>
> 发自我的 iPhone
>
> 在 2012-11-1,20:38,"李 鎮(Zhen Li)" <li.z...@dena.jp> 写道:
>
> Hi,
>
> 做了个小实验, 明白了一些事情,拿来分享。
> Q1:
> > 书中说,split 函数返回结果有多少个元素可以用下面的方法
> >   my $count = ( ) = split /:/, $line;
> >  但是我测试,发现$count的值只是为1
>
> my $line = "this:is:test:line:for:split.";
> my $cnt =  () = (split /:/, $line);
> 返回值为1,
>
> 这里的奥妙在split这里,
> split这个函数,需要别人告诉它,分割数是多少(就是它要返回多少个数值)。
> 但是()代表空list,
> () = (split /:/, $line)这种情况下,split不清楚分割数是多少。
> 我猜测它在这里返回的是个布尔值的结果。
>
> 接着,
> my $cnt = () = (split /:/, $line, -1);
> 返回值为6,
> 这里添加的-1, 明确告诉split, 最大分割数是无限,
> 所以这时侯split把数组返回来了。
>
> Q2,
> >书上还有一个例子,如书所说返回。
> >     my $elements = ( ) = localtime;
> 这里结果是9,
> localtime返回日期内容的数组,什么年月日的都在里面。
> 看一下它的说明就知道了。
>
> localtime返回的数组,首先被()这个空列表捕获,
> 因为$elements = ( ) 这个表达式,代表sclar context,
> 这样,数组的数量,就赋给了$elements。
>
> 以上,
> 希望我得解释容易理解,能对大家有所帮助。
> 呵呵。
>
> 2012/10/27 Robin Lee <robinlee.s...@gmail.com>
>
>> 没用过这种表达方式
>>
>> my $count = split /:/, $line;
>> 不就可以了吗?
>>
>> 如果要强制使用 List Context,应该推荐这样写:
>> my $elements = @{[localtime]};
>>
>>
>> 2012/10/26 x2x4 <x2x4...@gmail.com>
>>
>>> Hi 各位
>>>     最近在看Perl高效编程,其中的=()=让我疑惑
>>>
>>>     书中说,split 函数返回结果有多少个元素可以用下面的方法
>>>     my $count = ( ) = split /:/, $line;
>>>
>>>     但是我测试,发现$count的值只是为1
>>>
>>>     my $line = "this:is:test:line:for:split.";
>>>     my $count = ( ) = split /:/, $line;
>>>     print "split = $count\n";
>>>
>>>     如果换成
>>>     my $count = my @test = split /:/, $line;
>>>     返回为6
>>>
>>>     书上还有一个例子,如书所说返回。
>>>      my $elements = ( ) = localtime;
>>>
>>>      疑惑,求解。
>>>
>>> --
>>> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
>>> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
>>> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscr...@googlegroups.com。
>>> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>>>
>>>
>>  --
>> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
>> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
>> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscr...@googlegroups.com。
>> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>>
>
>
>
> --
> +++++++_++++++++
> 李 鎮
>
> 株式会社ディー・エヌ・エー
>
> ソーシャルプラットフォーム事業本部 システム部
>
>
> 〒150-8510
> 東京都渋谷区渋谷2丁目21番1号渋谷ヒカリエ
> Shibuya Hikarie 2-21-1, Shibuya, Shibuya-ku, Tokyo 150-8510
>
> ++++++ *-* +++++++
>
>
>  --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscr...@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>
>  --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscr...@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>

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

回复