in reply to uninitialized vs. undefined vs. !true and warnings. (code)

In a list context, readdir is incapable of generating an undefined value, so you needn't bother with a defined test at all. I just had to point that out as part of my civic duty to eliminate unnecessary lines of code. As tye rightly suggested in the CB, your warning is in all likelyhood coming from elsewhere:
  
#!/usr/bin/perl -w my $x; undef $x; if (0) { # LINE 5 print 'huh?'; } elsif ($x == 0) { print 'hmmm'; } ## output ## Use of uninitialized value in numeric eq (==) at - line 5. hmmm
   MeowChow                                   
               s aamecha.s a..a\u$&owag.print
  • Comment on (MeowChow) Re: uninitialized vs. undefined vs. !true and warnings.
  • Download Code