Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re^3: listing all subdirectories of directory into file

by aaron_baugher (Deacon)
on May 26, 2012 at 16:39 UTC ( #972634=note: print w/ replies, xml ) Need Help??


in reply to Re^2: listing all subdirectories of directory into file
in thread listing all subdirectories of directory into file

At first I thought File::Find might not be that good for this, because he wants to make a list within each directory of its subdirectories, which at first glance means "looking at" each directory twice: once when you're adding it to its parent directory's list, and then again when File::Find comes across it. But then I thought of this, which is very simple, but has the downside of opening the output file every time it needs to write a line:

#!/usr/bin/env perl use Modern::Perl; use File::Find; sub w { if( -d $_ ){ open my $out, '>>', 'list' or die $!; print $out "$_\n"; close $out; } } File::Find::find(\&w, '.');

Aaron B.
Available for small or large Perl jobs; see my home node.


Comment on Re^3: listing all subdirectories of directory into file
Download Code
Re^4: listing all subdirectories of directory into file
by jdrago999 (Pilgrim) on Jun 08, 2012 at 17:23 UTC

    Why open and close $out every time?

    #!/usr/bin/env perl use Modern::Perl; use File::Find; # $out is used within w(): open my $out, '>>', 'list' or die $!; sub w { if( -d $_ ){ print $out "$_\n"; } } File::Find::find(\&w, '.');

      If you look at his spec, he wants more than one "out" file. In each directory, he wants a file named 'list' that contains a list of every subdirectory of that directory. So in a directory structure like the following, you would get 'list' files like so:

      $ find . -ls|cut -b14-24,68- drwxr-xr-x . drwxr-xr-x ./a -rw-r--r-- ./a/list drwxr-xr-x ./a/d drwxr-xr-x ./a/c drwxr-xr-x ./b -rw-r--r-- ./list $ cat list a b $ cat a/list c d

      Aaron B.
      Available for small or large Perl jobs; see my home node.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (11)
As of 2014-12-18 22:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (67 votes), past polls