In my experience, glob() is almost never a good idea for me - I used to think that it was until I gained more experience and got bitten by this critter a few times. So we just disagree a bit.

For example, I've had trouble with ActiveState's glob vs BSD glob vs Posix glob and some pretty strange things have happened when my code wouldn't run on some other guy's windows box as a PerlApp.exe. Anyway haven been bitten a couple of times with cross platform weirdness, I am leery of glob(). Yes, to say open the file, you do indeed have to concatenate the $dirpath name. "$dirpath/$file". Lots of times I need to process the $filename (maybe update some serial number in it), which if full path, needs Basename or such to get the filename, or I need a more complex regex than what the simple glob() thing does or some other file test (like on modification date). Things like: Re: opening accented file names come up also.

Anyway, the OP now knows a couple of ways. And can choose the tool that best fits the job at hand. I certainly am not saving never use glob() or always use readdir(). Always and never are two words that don't fit with programming.


In reply to Re^3: Globbing uncertainty by Marshall
in thread Globbing uncertainty 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.