perl:如何使脚本打印';模式匹配';
如何将“模式匹配”作为输出…?在Perl中,if/else块必须有大括号。您还需要使用perl:如何使脚本打印';模式匹配';,perl,Perl,如何将“模式匹配”作为输出…?在Perl中,if/else块必须有大括号。您还需要使用=~运算符: $out="MMNT123 out in a1 a2"; if($out=m(MM\w+\s\w+)) print 'pattern matched'; else print 'pattern not matched'; 对于if,大括号中不需要 if($out =~ m(MM\w+\s\w+)) { print 'pattern matc
=~
运算符:
$out="MMNT123 out in a1 a2";
if($out=m(MM\w+\s\w+))
print 'pattern matched';
else
print 'pattern not matched';
对于if,大括号中不需要
if($out =~ m(MM\w+\s\w+)) {
print 'pattern matched';
} else {
print 'pattern not matched';
}
您有一个语法错误,因为您省略了
if。。否则…
语句
print 'pattern matched' if $out =~ /MM\w+\s\w+/;
但这仍然不起作用,因为您正在使用赋值运算符(=
),而您应该在其中使用绑定运算符(=~
)
为了完整起见,我应该指出:
$out = "MMNT123 out in a1 a2";
if ($out =~ m(MM\w+\s\w+)) {
print 'pattern matched';
} else {
print 'pattern not matched';
}
实际上是:
$out = m(MM\w+\s\w+)
例如,“将
$的内容与正则表达式匹配,如果匹配,则将$out
设置为真值,如果不匹配,则将其设置为假值”。我猜$的内容与您的正则表达式不匹配,因此$out
总是得到一个错误的值。通常情况下,使用警告可以解释更多:在模式匹配(m/)中使用未初始化的值$。
$out = m(MM\w+\s\w+)
$out = ($_ =~ /MM\w+\s\w+/)