gpt4 book ai didi

Perl 一行 if 语句

转载 作者:行者123 更新时间:2023-12-04 00:00:23 28 4
gpt4 key购买 nike

我有一个声明

$set eq "Y" ? $set = "N" : $set = "Y";

但不管它总是设置为 "N"
# Toggle setting
if ($set eq "Y")
{
$set = "N";
}
else
{
$set = "Y";
}

为什么一个类轮似乎不起作用?

最佳答案

由于优先级规则,perl 不会像您想的那样解析您的语句:

$ perl -MO=Deparse,-p -e '$set eq "Y" ? $set = "N" : $set = "Y"'
((($set eq 'Y') ? ($set = 'N') : $set) = 'Y');
-e syntax OK

如您所见,在两种情况下,最终结果都是 $set然后设置为 Y 的标量.

你可以用几个括号修复它:
$set eq "Y" ? $set = "N" : ($set = "Y")

但是为什么要重复赋值:
$set = $set eq 'Y' ? 'N' : 'Y';

关于Perl 一行 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9710518/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com