Thanks that worked great

>>> [EMAIL PROTECTED] 06/30/04 12:22PM >>>
Joe Stuart wrote:
> I have a script that recursively goes through the filesystem and
changes
> links in html documents  The problem I'm having is that it chokes on
> directories with spaces in there names.  Does anyone have any
> suggestions on how to deal with this? I've tried using both glob and
> readdir to go through the directory. Glob doesnt error out, but it
> doesnt change the links in the documents and when using readdir I
get
> this error message. 
> Bad symbol for filehandle at ./recurse.pl line 15.

Here is some code I've posted before. I think it works with spaces.

#!/usr/bin/perl

use strict;
use warnings;

use File::Spec;


scan_dir('.');


my @dirstack;

sub scan_dir {
   my $dir = shift;
   return unless -d $dir;

   my @subdirs;

   opendir DIR, $dir or die "Can't open directory ($dir): $!\n";
   while (my $file = readdir DIR) {
     next if $file eq File::Spec->curdir()
       or $file eq File::Spec->updir();

     my $path = File::Spec->catfile($dir, $file);
     if (-d $path) {
       push @subdirs, $file;
       next;
     } else {
       # => do something here <= #
       print "$path\n";
     }
   }
   closedir DIR;

   foreach my $subdir (@subdirs) {
     push @dirstack, $subdir;
     scan_dir(File::Spec->catdir($dir, $subdir));
     pop  @dirstack;
   }
}

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED] 
For additional commands, e-mail: [EMAIL PROTECTED] 
<http://learn.perl.org/> <http://learn.perl.org/first-response>



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to