| Next | The Identity Function | 33 |
What we can't do yet is something like the Unix du command
This accumulates a per-directory total
sub walk_tree {
my ($dir, $filefunc, $dirfunc) = @_;
if (-d $dir) {
opendir my $dh, $dir or return;
my @values;
while (my $file = readdir $dh) {
next if $file eq '.' || $file eq '..';
push @values, walk_tree("$dir/$file", $filefunc, $dirfunc);
}
return $dirfunc->($dir, @values);
} else {
return $filefunc->($dir);
}
}
| Next | ![]() |
Copyright © 2001 M. J. Dominus |