免费注册 查看新帖 |

Chinaunix

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

2个小问题:比较2个字符串和为何变为1 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-09 21:45 |只看该作者 |倒序浏览
第一个问题:
my $aa = "+cat";
my $bb = "+cat";
如何比较$aa和$bb是否相同呢?如果直接写print "Match!" if($aa =~ /^$bb$/);是不行的。

第二个问题:
承接第一个问题,如果我这么做:
my $aa = "+cat";
my $bb = "+cat";
$_ = $aa;
$aa = /\+(.*)/;
$_ = $bb;
$bb = /\+(.*)/;
print "$aa\n";
print "$bb\n";
print "Match!" if($aa =~ /^$bb$/);
发现$aa和$bb都变成了1,好像以前不会是这样啊,是Perl版本问题吗?但好像不是。
因为有一个类似的问题:
while(<>)
{
  $_ = chomp($_);
  print "$_\n";
}
发现了$_也变成了1。但是我今晚刚开始写程序时似乎还是正常的,后来不知道为何就变成了1.

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2009-05-09 21:50 |只看该作者
小骆驼

论坛徽章:
0
3 [报告]
发表于 2009-05-09 21:50 |只看该作者
第二个问题中的前半个我明白了,应该这么写:
$_ = $aa;
($aa) = /\+(.*)/;
$_ = $bb;
($bb) = /\+(.*)/;
这就没问题了。
但$_怎么变成了1呢?

论坛徽章:
0
4 [报告]
发表于 2009-05-09 21:53 |只看该作者
1. 字符串比较用ne或cmp。
2. $aa = /\+(.*)/; 相当于 $aa = $_ =~ /\+(.*)/; $_ 是 +cat 结果当然是1了
3. perldoc -f chomp.

论坛徽章:
0
5 [报告]
发表于 2009-05-09 21:55 |只看该作者
OK,le,第一个问题搞定了

论坛徽章:
0
6 [报告]
发表于 2009-05-09 21:57 |只看该作者
OK,第二个问题的后半个也搞定了,只要直接chomp就是把$_最后的回车去掉了。

论坛徽章:
0
7 [报告]
发表于 2009-05-09 21:58 |只看该作者
谢谢大家,这里很高效。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP