What is the proper way to check if a string is empty in Perl?
Solution 1:
For string comparisons in Perl, use eq
or ne
:
if ($str eq "")
{
// ...
}
The ==
and !=
operators are numeric comparison operators. They will attempt to convert both operands to integers before comparing them.
See the perlop man page for more information.
Solution 2:
Due to the way that strings are stored in Perl, getting the length of a string is optimized.
if (length $str)
is a good way of checking that a string is non-empty.If you're in a situation where you haven't already guarded against
undef
, then the catch-all for "non-empty" that won't warn isif (defined $str and length $str)
.