Perl でいくつかの変数を untaint しようとすると、次のコードがうまく機能します。
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