in reply to Re^3: Piping many individual files into a single perl script
in thread Piping many individual files into a single perl script

Upon reading the documentation for File::Glob I was about to say that I stand corrected, but to be precise, I actually wrote that "This sounds very wrong" (with additional emphasis added now) so I won't, because I still claim that it sounds very wrong. That the actual globbing function's name is bsd_glob() behind the scenes is a matter of fact, but using it explicitly conveys the psychological feeling of resorting to a bsd thingie, whatever it is. The rationale is that perl's glob will dwimmily do whatever is best for the OS one is running under: of course, I acknowledge that there's some sloppiness in this claim since

Whatever, if e.g. glob() breaks when a space is present, I would still regard it as a feature: provided that does it conform to the standard behaviour on the given OS. Failure to do so would be definitely considered a bug instead.

--
If you can't understand the incipit, then please check the IPB Campaign.

Replies are listed 'Best First'.
Re^5: Piping many individual files into a single perl script
by ikegami (Patriarch) on Sep 30, 2008 at 15:47 UTC

    provided that does it conform to the standard behaviour on the given OS.

    Perl's glob is platform independent. It behaves the same on all platforms.

    if e.g. glob() breaks when a space is present

    It's done that way to allow glob('*.h *.c'), but I called it broken since patterns are usually already separated into multiple calls to glob. bsd_glob is identical to glob except for the difference in the treatment of spaces.

    under Windows, it's not defined at all, being left to each individual application

    They usually delegate to the FindFirstFile system call. Perl has File::DosGlob which resembles FindFirstFile.

      provided that does it conform to the standard behaviour on the given OS.

      Perl's glob is platform independent. It behaves the same on all platforms

      I personally believe that it is case sensitive under unices and case insensitive under Windows, for one thing. While I had naively and erroneously assumed this (along with other details!) was implemented with a selective loading of system specific modules, much like File::Spec does, or more simply by inserting the suitable sub out of a set into *CORE::GLOBAL::glob while it is much more simply and reasonably controlled by means of a single variable, I would definitely call that a different behavious across platforms.

      It's done that way to allow glob('*.h *.c'), but I called it broken since patterns are usually already separated into multiple calls to glob

      Actually, I see your point now, but I wouldn't go as far as calling it broken.

      under Windows, it's not defined at all, being left to each individual application

      They usually delegate to the FindFirstFile system call. Perl has File::DosGlob which resembles FindFirstFile

      Thank you for sharing this, I didn't know.

      --
      If you can't understand the incipit, then please check the IPB Campaign.