Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
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 romping around the Monastery: (5)
As of 2014-09-18 06:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (108 votes), past polls