2011年1月16日星期日

[PerlChina] Perl5.010中的智能匹配操作符~~的问题。

大家好!
我在测试Perl5.010中的智能匹配操作符~~的时候发现下面这么一个问题:
在《Perl语言入门》(第五版)的第236页的表格中,有下面几句话:
@a ~~ /Fred/    有一个元素匹配给定的模式
@a ~~ 123       至少有一个元素转化为数字后是123
@a ~~ 'Fred'     至少有一个元素转化为字符串后是‘Fred'

但是我用下面的代码测试了一下,却发现上面的第2、3句有问题:
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;
my @a = ( 1, 2, 3 );
foreach my $t (@a) {
    print "$t\t";
}
print "\n";
if ( @a ~~ /2/ ) {
    print "Match YES!\n";
}
else {
    print "Match No\n";
}
if ( @a ~~ 2 ) {
    print "Number YES!\n";
}
else {
    print "Number No\n";
}
if ( @a ~~ "2" ) {
    print "String YES!\n";
}
else {
    print "String No\n";
}

不知道谁能给解释一下?谢谢!

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

没有评论: