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/