小编Jac*_*cob的帖子

Perl:使用?:运算符时出现意外的匹配变量

试图解开Perl中的一些变量,以下代码很有用:

if ($year =~ /^(\d{4})$/) {
        $year = $1;
} else {
        &invalid("year");
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,如果有效,$ 1包含$ year.但是,使用?:运算符时,$ 1在有效时包含"1":

($year =~ /^(\d{4})$/) ? $year = $1 : &invalid("year");
Run Code Online (Sandbox Code Playgroud)

有人看到我可能有过错吗?我很困惑为什么会这样.它只发生在这台机器上.或者说,我已成功使用了?运算符用于返回多年的正确匹配变量.我还没有在任何其他机器上尝试过这段代码.

This is Perl, v5.8.8 built for x86_64-linux-thread-multi
Run Code Online (Sandbox Code Playgroud)

regex perl cgi taint-checking

4
推荐指数
2
解决办法
267
查看次数

标签 统计

cgi ×1

perl ×1

regex ×1

taint-checking ×1