Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^2: Recursive Directory Listings

by shagbark (Acolyte)
on Nov 01, 2014 at 17:47 UTC ( [id://1105802]=note: print w/replies, xml ) Need Help??


in reply to Re: Recursive Directory Listings
in thread Recursive Directory Listings

I gotta complain about the idea that File::Find is the canonical way to traverse a directory. File::Find calls a subroutine of your choice on each file it traverses, but if you want to save the results from processing those files, you have to save them in a global variable, because there's no way to capture the return values from your subroutine. Not to mention there are a lot of things that are hard to do with it. Try to use File::Find just to construct a hash with the directory structure. You can do it, but you'll have to parse the full path to the file and traverse your hash structure to insert each element, using about 10 times as much code as just saying push(@{$hash{$dir}, $file). File::Find is hard to use and leads to bad code. I never use it anymore except for the simplest of tasks.

Replies are listed 'Best First'.
Re^3: Recursive Directory Listings
by jdporter (Paladin) on Nov 01, 2014 at 19:38 UTC
    you have to save them in a global variable, because there's no way to capture the return values from your subroutine

    That's not quite true; you can save the results in any lexical variable in scope of the sub.

    I reckon we are the only monastery ever to have a dungeon stuffed with 16,000 zombies.
Re^3: Recursive Directory Listings
by Anonymous Monk on Nov 02, 2014 at 07:19 UTC

    I gotta complain about the idea that File::Find is the canonical way to traverse a directory ... I use it ...

    That argument could be made in 2005 that File::Find probably is canonical ... you could also make that argument today :)

    I prefer File::Find::Rule

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (9)
As of 2024-04-23 09:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found