Hi Sean,

Find::File did the magic for me.

Thanks

Mimi

On Mon, 2008-01-28 at 08:20 -0500, Sean Davis wrote:
> On Jan 28, 2008 6:56 AM, Mimi Cafe <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > I am trying to process a directory and all subdirectory recursively and
> > generate a list as the Unix command "ls -R" will display, but this seems not
> > to behave as it should.
> > My script only goes as far as processing the directory and the 1 step below
> > not more.
> >
> > I have some like, but the script goes as far as 1_child and 2_child but no
> > further:
> > /parent/1_child/1_grant_child/././
> > /parent/2_child/2_grant_child/././
> >
> > The script will finally be used on Windows OS,  Unix system command cannot
> > be used.
> >
> > Can anyone help?
> 
> I would suggest trying to use a CPAN module for this type of thing.
> There may be others, but look at File::Find:
> 
> http://search.cpan.org/search%3fmodule=File::Find
> 
> 
> >
> > ###############################################################
> > #!/usr/bin/perl -w
> >
> >
> > # Recursively read content of a folder and dynamically create a list on an
> > html page.
> >
> > use CGI qw(:standard);
> > #use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
> > #use warnings;
> > use strict;
> >
> >
> >
> > print header(),
> >  start_html("Documents list");
> > print "<h1> Documents List</h1><br>\n";
> >
> > my $source = "/depot/my_directory";
> >
> > opendir (SOURCE, $source) or die "Cannot open the source folder for reading:
> > $!\n";
> >
> > my $file;
> > while (defined($file = readdir(SOURCE))){
> >  next if $file =~ /^\.{1,2}$/;
> >  my $full_name = "$source/$file";
> >  if (-d $full_name){
> >   #my $full_name = "$source/$file";
> >   print qq(<b>$file</b><br>);
> >   process($full_name);
> >  }else{
> >   print qq(<a href="$full_name>$file</a><br>);
> >  }
> >  #next;
> > }
> > closedir (SOURCE);
> >
> >
> > print end_html();
> >
> >
> >
> > # Subroutine to process subdirectory and list content.
> >
> > sub process{
> >
> >  my ($path, $file, @files, $file_full_path);
> >  $path = shift;
> >  opendir (SUBDIR, $path) or die "Cannot open the subfolder for reading:
> > $!\n";
> >
> >  @files = sort grep {!/^\.{1,2}$/} readdir(SUBDIR);
> >  closedir (SUBDIR);
> >
> >  for (@files){
> >   $file_full_path = "$path/$_";
> >
> >   if (-d $_){
> >    print qq(<b>$_</b><br />);
> >    process($_);
> >
> >
> >   }else {
> >
> >    print qq(<a href="$file_full_path">$_</a><br />);
> >
> >   }
> >
> >  }
> >
> >
> > }
> > #######################################################
> >


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


Reply via email to