Perl 我需要使用定义的吗?
这两种方法之间有什么区别吗:Perl 我需要使用定义的吗?,perl,Perl,这两种方法之间有什么区别吗: print "Undefined\n" unless defined $test; 及 对 如果$test为undef,则打印未定义 print "Undefined\n" unless $test; 如果$test为undef或$test==0或$test eq'',则打印未定义的值数字0、字符串“0”和空字符串('')均已定义,但为false。如果在运行代码时将$test设置为这三个值中的任何一个,您将看到差异 defined测试检查是否定义了值。定义的变量
print "Undefined\n" unless defined $test;
及
对
如果$test
为undef
,则打印未定义
print "Undefined\n" unless $test;
如果
$test
为undef
或$test==0
或$test eq'',则打印未定义的值数字0、字符串“0”和空字符串('')均已定义,但为false。如果在运行代码时将$test
设置为这三个值中的任何一个,您将看到差异
defined
测试检查是否定义了值。定义的变量已给定值。任何价值。即使是假的
(好的,不是值undef
)您可以通过解释Perl中定义和真值之间的差异来改进您的答案。还要注意的是,虽然字符串“0”为false,但字符串“00”为true(并且两者都==0
)。最后一行更好的写法是:如果$test eq“0”
(包括数字0)或$test eq'
(包括unde
)。
print "Undefined\n" unless defined $test;
print "Undefined\n" unless $test;