尝试在 Perl 中清除一些变量,下面的代码效果很好:
if ($year =~ /^(\d{4})$/) {
$year = $1;
} else {
&invalid("year");
}
在上面的例子中,$1 包含 $year(如果有效)。但是,在使用?:
运算符时,$1 在有效时包含“1”:
($year =~ /^(\d{4})$/) ? $year = $1 : &invalid("year");
任何人都看到我可能有错吗?我很困惑为什么会这样。它只发生在这台机器上。或者更确切地说,我已经成功使用了 ? 运算符用于返回多年的正确匹配变量。我还没有在任何其他机器上尝试过这段代码。
This is Perl, v5.8.8 built for x86_64-linux-thread-multi