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); }
In reply to Recursion not working by siggib
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |