Uh, I may be on the wrong list...  Is there a pre-beginners list?  =)

What does this notation mean?

  @{$dirs{$dir}}


Thanks for the replies, the two were perfect -- what I was doing wrong with
my code, and what I *should* have been doing.  This list is great...

- B

__________________


Bryan R Harris wrote:
>
> I have a large directory tree that I'd like to build index files for,
> essentially an
>
>      ls > index.txt
>
> in each directory in the tree.  Obviously I'm having trouble figuring it
> out.  =)
>
> I've tried the following:
>
> use File::Find;
> sub process_file {
> if (-d) {
>   $tmp = `ls $_`;
>   open(OFILE, "> index.txt") || die ("Couldn't open index.txt: $!\n");
>   print OFILE $tmp;
>   close(OFILE);
>   }
> }
> find(\&process_file, @ARGV);
> print "\n";
>
> But it misses the deepest level of directories.  Is there an established
> way of doing this kind of thing?


This should do what you want:

use File::Find;
my %dirs;
find( sub { push @{$dirs{$File::Find::dir}}, "$_\n" unless /^\.\.?$/ },
@ARGV );

for my $dir ( keys %dirs ) {
    open OFILE, "> $dir/index.txt" or warn "Cannot open $dir/index.txt:
$!";
    print OFILE @{$dirs{$dir}};
    close OFILE;
    }

__END__


John
--
use Perl;
program
fulfillment

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to