免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2714 | 回复: 5
打印 上一主题 下一主题

warn && next为什么warn就不显示了[已解决] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-08 04:54 |只看该作者 |倒序浏览
代码如下:

for(my $i=0;$i<10;$i++) {
  warn "warn" && next;
}


本来是想实现类似这样的语句的,这样就可以不用if了
可能不是什么好的style,不过我只是想知道原因,呵呵

foreach my $file (("a","b")) {
  warn "[I] Info: Working on $file\n";
  my $sb = stat("$file") || (warn "[W] Warn: Unable to do stat query on '$file'.\n $!\n" && next);
# something else here

}


[ 本帖最后由 bood 于 2008-2-12 04:18 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-02-08 06:49 |只看该作者
warn返回值是什么?

论坛徽章:
0
3 [报告]
发表于 2008-02-08 07:09 |只看该作者

回复 #2 galaxywar 的帖子

warn返回1阿,我double check过了

论坛徽章:
0
4 [报告]
发表于 2008-02-09 18:32 |只看该作者
逻辑上看你需要的是 !() || warn

另外要提醒的是=和||的优先级

[ 本帖最后由 Lonki 于 2008-2-9 19:19 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-02-10 12:04 |只看该作者
try
warn "something" and next

论坛徽章:
0
6 [报告]
发表于 2008-02-12 04:17 |只看该作者
原帖由 churchmice 于 2008-2-10 12:04 发表
try
warn "something" and next


阿,改用and就可以了
现在知道了,原来是&&优先级太高了
于是warn "" && next变成warn ("" && next)
谢谢!

另外也感谢Lonki地提醒,虽然在这里出错的话$sb得到的值已经无关紧要,因为next会在赋值之前进行:wink:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP