Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^2: glob() and dot files

by haukex (Archbishop)
on Apr 13, 2020 at 08:26 UTC ( #11115429=note: print w/replies, xml ) Need Help??


in reply to Re: glob() and dot files
in thread glob() and dot files

This prints all simple files, but skips directories.

my @files = glob ('*.*');

No, it prints any file or directory names that have a dot in them. It's a very old DOS convention that files had extensions and directories didn't, but nowadays that's not true anymore. You'd need grep {!-d} glob('*') to exclude directories.

Replies are listed 'Best First'.
Re^3: glob() and dot files
by Marshall (Canon) on Apr 13, 2020 at 09:04 UTC
    You are correct.
    my @files = glob('*'); # current directory print "",join("\n",@files), "\n";
    # Note that these file names do not say whether or not they are directories, a file test is needed. I demo'ed this at Re: Getting a list of directories matching a pattern.

    Update: I experimented with Windows 10 command line and found that I could indeed create a directory with a "dot suffix". That surprised me.Having said that, I have never seen such a thing in "real life". By convention, that is just not "the way that this is done". A long time ago, I was forced to use readdir and grep to get file names because of incompatible glob's. For production code, I still use readdir and grep because it will always work. For quick hacks, I am fine with glob().

      a directory with a "dot suffix". That surprised me.Having said that, I have never seen such a thing in "real life". By convention, that is just not "the way that this is done".

      The two places I see it happen the most are when some programs put their version number as part of the directory name (C:\Program Files\FooBar v1.23) or when *NIX tools are ported to Windows.

        Good comments.
        Instead of something like: C:\Program Files\FooBar v1.23, I use personally would use: C:\Program Files\FooBar v1_23. However not all folks think that way. True.

        Having said that, I am a supporter of using readdir(). Having been burned a few times with different versions of glob(), I use readdir() for all production code. I do sometimes use glob() for short tests where my code is just looking in the current dir for specific ".suffixes".

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11115429]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2022-08-13 21:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?