siggib has asked for the wisdom of the Perl Monks concerning the following question:
I'm writing a perl script to process files in a directory and it has recursion to process sub directories. However my code stops after first recursion and I can't figure out why it's loosing it's place. It looks like I'm loosing my directory handle but I can't figure out why. Can anyone lend me a hand and educate me on my issue? Here is my sub
sub ScanDir { my($dir) = @_; my ($file); if (substr ($dir,-1) ne "/") { $dir .= "/"; } opendir(DIR, $dir) or die $!; while ($file = readdir(DIR)) { next if ($file =~ m/^\./); $FullName = $dir.$file; if (-d $FullName) { ScanDir($FullName); } else { next unless (-f $FullName); @fdata = stat($FullName); open(FILE, $FullName) or die "Error: Could not open $FullName fo +r MD5 checksum"; binmode(FILE); my $md5sum = $md5->addfile(*FILE)->hexdigest; close FILE; print "$FullName, $fdata[7], $fdata[8], $fdata[9], $md5sum\n" } } closedir(DIR); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Recursion not working
by BrowserUk (Patriarch) on Jul 28, 2012 at 19:19 UTC | |
|
Re: Recursion not working
by tobyink (Canon) on Jul 28, 2012 at 20:56 UTC | |
|
Re: Recursion not working
by BillKSmith (Monsignor) on Jul 28, 2012 at 22:31 UTC |