Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: File::Find problem

by converter (Priest)
on Mar 17, 2003 at 20:01 UTC ( #243778=note: print w/ replies, xml ) Need Help??


in reply to File::Find problem

It might be easier to process the directory tree in two passes. I'm thinking something like the following might work:

#!/usr/bin/perl use warnings; use strict; use File::Find; my %targetdir; my %visiteddir; sub wanted_stage1 { return unless -f; $targetdir{$File::Find::dir}++ if /\.old$/; } sub postprocess { return unless $targetdir{$File::Find::dir}; return if $visiteddir{$File::Find::dir}++; print "Changing files in $File::Find::dir\n"; } # build list of directories containing *.old files: find({wanted => \&wanted_stage1}, "."); print "Directories to process: @{[sort keys %targetdir]}\n"; # process files in directory list: find({wanted => sub{}, postprocess => \&postprocess}, sort keys %targe +tdir); __END__ .: code.pl code.txt one two ./one: bar foo three ./one/three: four something.old ./one/three/four: blah something.old ./two: bar foo something.old Directories to process: ./one/three ./one/three/four ./two Changing files in ./one/three/four Changing files in ./one/three Changing files in ./two


Comment on Re: File::Find problem
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2015-07-06 02:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (69 votes), past polls