免费注册 查看新帖 |

Chinaunix

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

perl 5.8与5.10 差异很大吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-16 15:56 |只看该作者 |倒序浏览
新人起步,学习资料是[perl语言入门(第五版)]
但是试验用环境装的是perl5.8,发现书里面很多代码执行出来,其结果跟书上给的不一样。
例:正则表达式
    /\d/     :  匹配所有数字字符
    /^\d/   :  匹配所有非数字字符

但在perl5.8的环境下,执行出来的结果却是一样的。
换句话说,在5.8中^是没有用的吗?

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
2 [报告]
发表于 2012-04-16 16:09 |只看该作者
把你实验用的代码贴出来看看呢

论坛徽章:
0
3 [报告]
发表于 2012-04-16 16:32 |只看该作者
my $f = "123";
if ($f = ~ /^\d/) #变量f中的值为非数字字符时输出“its matched”
    {print "its matched \n";}
else                    #变量f中的值为数字字符时,将变量f的值输出到屏幕
    {print "$f \n";}

上例的执行结果是:“its matched”

我想像的结果应该是将变量f的值打印出来

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
4 [报告]
发表于 2012-04-16 16:42 |只看该作者
书上哪里写了    /^\d/   :  匹配所有非数字字符  ?

论坛徽章:
0
5 [报告]
发表于 2012-04-16 17:00 |只看该作者
/^\d/  这个是 “匹配任何字符串的开头接着一个字数” 的意思吧 匹配非数字不是[^\d] 或者\D 吗?

论坛徽章:
0
6 [报告]
发表于 2012-04-16 17:28 |只看该作者
/[^\d]/ ,
注意 ^ 还是锚点呢。 要表示 非, 是有前提的。

论坛徽章:
0
7 [报告]
发表于 2012-04-16 18:09 |只看该作者
谢谢大家
已解决,正如楼上所说,没有被[]包含起来的^是代表着头一个字符,新人,请大家多多包涵撒
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP