title: Use of uninitialized value in string eq. left or right?
body: <p>I am clearing up some code and I see in our server logs that the perl error is ...</p>
  
  <pre><code>Use of uninitialized value in string eq at .....
  </code></pre>
  
  <p>Looking at the code the line looks like this....</p>
  
  <pre><code>if ($level1 eq $level2) {
  </code></pre>
  
  <p>OK fair enough. I suppose my question is this. Is it $level1 or $level2 that's the problem?</p>
  
  <p>I wrote a quick test to try to replicate it locally and it looks like this....</p>
  
  <pre><code>#!/usr/bin/perl
  use warnings;
  my $a;
  my $b;
  
  if ($a eq $b){
      print "....";
  }
  </code></pre>
  
  <p>And I get a much more informative error.</p>
  
  <pre><code>Use of uninitialized value $a in string eq at ./warntest.cgi line 7.
  Use of uninitialized value $b in string eq at ./warntest.cgi line 7.
  </code></pre>
  
  <p>This is seemingly inconsistent behavior. Does anyone have a clue?
  Janie</p>