Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Directories without recursion and exceptions

by davidrw (Prior)
on Feb 21, 2006 at 14:03 UTC ( [id://531694]=note: print w/replies, xml ) Need Help??


in reply to Directories without recursion and exceptions

not sure i understand your exceptions requirements, but File::Find::Rule might make things easier ..
use File::Find::Rule; my @search = qw( /usr/local/ ); my @abs_dirs = qw ( /usr/local/share/locale ); my %abs_dirs; @abs_dirs{@abs_dirs} = (); my @dirs = grep { ! exists $abs_dirs{$_} } File::Find::Rule->directory +()->in( @search );

Replies are listed 'Best First'.
Re^2: Directories without recursion and exceptions
by merlyn (Sage) on Feb 21, 2006 at 14:43 UTC
    Not sure if FFR can do this directly, but my File::Finder can also do:
    use File::Finder; my @search = qw( /usr/local/ ); my @abs_dirs = qw ( /usr/local/share/locale ); my %abs_dirs; @abs_dirs{@abs_dirs} = (); my @dirs = File::Finder->type('d')->eval(sub { not exists $abs_dirs{$F +ile::Find::name}})->in(@search);

    -- Randal L. Schwartz, Perl hacker
    Be sure to read my standard disclaimer if this is a reply.

      All in one w/FFR:
      my @files = File::Find::Rule->directory()->exec( sub { ! exists $abs +_dirs{$_[2]} } )->in( @search );
      I was actually looking at both FFR and File::Finder for this task .. codes comes out pretty similar for both :)
Re^2: Directories without recursion and exceptions
by uksza (Canon) on Feb 21, 2006 at 14:58 UTC
    Hi,
    Thanx a lot for your reply!
    Some more about my exceptions:
    I've got program (scaner) whitch can scan directories with recursion but don't have --except parametr. So, if I want scan /home (except /home/user3) I must write:
    ./scaner /home/user1 /home/user2 /home/user4 /home/user5
    But what if I have 100 users and 12 exceptions? And what if I want to scan / with 12 exceptions in /home 5 in /usr and some more?
    I use my script and make list all directiories without unnecessary subdirectories (/home/user1/mail etc).
    And I just wonder if is any smarter way to do it.

    greetz, Uksza

    Yes, smart people know that fat arrow autoquotes the left argument. But why should you require your code to be maintained by smart people?
    Randal L. Schwartz, Perl hacker

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2024-04-25 18:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found