Nic*_*ton 88 string perl comparison
我刚刚使用此代码来检查字符串是否为空:
if ($str == "")
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
和不等于运算符的情况一样......
if ($str != "")
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
这似乎有用(我认为),但我不确定这是正确的方法,还是有任何不可预见的缺点.对此感觉不对劲.
Gre*_*ill 124
对于Perl中的字符串比较,请使用eq或ne:
if ($str eq "")
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
在==与!=运营商的数字比较操作符.在比较它们之前,它们将尝试将两个操作数转换为整数.
有关更多信息,请参见perlop手册页.
hob*_*bbs 88
由于字符串存储在Perl中的方式,因此优化了字符串的长度.
if (length $str)检查字符串是否为空是一种很好的方法.
如果你处于一种你还没有防范过的情况undef,那么不会发出警告的"非空"的全部内容就是if (defined $str and length $str).
您可能希望使用"eq"而不是"==".如果您担心某些边缘情况,您可能还需要检查undefined:
if (not defined $str) {
# this variable is undefined
}
Run Code Online (Sandbox Code Playgroud)
正如几个人已经提到的那样,eq这里是合适的运营商.
如果您use warnings;在脚本中,您将收到有关此内容的警告(以及许多其他有用的内容); 我也推荐use strict;.
除了使用 CPAN 之外,做任何事情的“正确”方式的概念在 Perl 中都不存在。
无论如何,这些是数字运算符,您应该使用
if($foo eq "")
Run Code Online (Sandbox Code Playgroud)
或者
if(length($foo) == 0)
Run Code Online (Sandbox Code Playgroud)
小智 5
要检查空字符串,您还可以执行以下操作
if (!defined $val || $val eq '')
{
# empty
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
184717 次 |
| 最近记录: |