给力 在 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 访问此网上论坛。