在标量(布尔)上下文中1计算表达式时,如果表达式求值为true ,则Perl使用显式值作为结果;如果表达式求值为false,则使用空字符串.我很好奇为什么Perl使用空字符串来表示布尔值false而不是0更直观.
请注意,我并不关心Perl将空字符串视为标量(布尔)上下文中的false.
编辑
如何使用true("false"例如)字符串作为false值的字符串表示来改变现有代码的含义?我们可以说在这样的改变之后改变语义的代码不像它本来那样健壮/正确吗?我猜字符串上下文在Perl中是如此普遍,以至于导致理智语义的唯一选择是,如果布尔值在向字符串转换为字符串之后保留其值...
Perl 定义的函数(以及许多其他函数)返回"布尔值".
鉴于Perl实际上没有布尔类型(并且使用值为1表示true,0或undef表示false)Perl语言是否准确指定了布尔值的返回值?例如,会defined(undef)返回0或undef,是否会发生变化?