Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Finding files in one directory

by bart (Canon)
on Dec 18, 2012 at 11:58 UTC ( [id://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?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2024-04-24 08:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found