我需要检查标量的值是否为 0。但是“0”和其他情况对我的检查来说是错误的。我该如何检查?
最佳答案
您可以使用
检查标量的值是否为零$scalar == 0
你真的不应该,但你可以使用以下方法检查标量是否包含值为零的 IV(有符号整数)、UV(无符号整数)或 NV( float ):
use Inline C => <<'__END_OF_C__';
IV contains_numerical_zero(SV* sv) {
SvGETMAGIC(sv);
if (SvIOKp(sv)) /* If the SV contains an IV or UV */
return SvIV(sv) == 0;
if (SvNOKp(sv)) /* If the SV contains an NV */
return SvNV(sv) == 0;
return 0;
}
__END_OF_C__
say contains_numerical_zero(...) ? "yes" : "no";
请注意,如果标量包含等于零的有符号整数和包含字符零的字符串,则 contains_numerical_zero
返回 true。
关于佩尔。检查标量的值是否为零数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16954295/