Well..

We know that opendir(DIR,'/tmp/mydir') won't work if it's not a directory. We also know that it won't work if the permissions do not allow it.

If we say -d '/tmp/mydir' or die('/tmp/mydir is not a directory'), then to the novice- this is like the code staring at them in the face telling them.. Yes, after this, you can rest assured, the directory is there, the string can indeed be interpreted as a path.

I think this is useful. To someone who: would call readdir() to get a list of directory entries in a directory- thinking that the list will only contain directories, excempting files, fifos, etc.

Yes, it is redundant. Yes, it's poor practice. I'm throwing it out there that it could be of use to someone getting their rationale around what's going wrong.
And yes, of course- the person does not *need* a -d check in addition to opendir.
Maybe some are too experienced to appreciate the pains and horrors of a novice learning anew? :-) Or maybe RTFM applies here. Also valid. Maybe my suggestion is too lenient and just opens up more holes than it patches, too.


In reply to Re^5: Quickest way to get a list of all folders in a directory by leocharre
in thread Quickest way to get a list of all folders in a directory by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.