What is the proper way to check if a string is empty in Perl?

Nick Bolton picture Nick Bolton · Jan 12, 2010 · Viewed 205.6k times · Source

I've just been using this code to check if a string is empty:

if ($str == "")
{
  // ...
}

And also the same with the not equals operator...

if ($str != "")
{
  // ...
}

This seems to work (I think), but I'm not sure it's the correct way, or if there are any unforeseen drawbacks. Something just doesn't feel right about it.

Answer

Greg Hewgill picture Greg Hewgill · Jan 12, 2010

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.