Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re: Finding files in one directory

by bart (Canon)
on Dec 18, 2012 at 11:58 UTC ( #1009347=note: print w/replies, xml ) Need Help??

in reply to Finding files in one directory

ls (or, in perl, glob) will work fine if you just need files from a single directory level. Note that you can even use glob '*/*.txt' so it doesn't even have to be all in the same subdirectory.

If you need files on any level under a root directory, you can indeed call out (on Linux and related) to find, or, in plain perl only, use the standard module File::Find. The latter is probably not as fast, but at least it's cross platform portable.

p.s. Note that in File::Find using a sub named "wanted" is a leftover from its perl-4 heritage, you can name your sub anything, or use an anonymous sub, like this:

my @files; find sub { push @files, $File::Find::name if -f and /\.txt$/ }, '.'; # now you have an array of file names: foreach(@files) { ... }

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1009347]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2018-05-26 20:33 GMT
Find Nodes?
    Voting Booth?