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/