first commit
This commit is contained in:
28
perl/Examples/Chap1/total-size
Normal file
28
perl/Examples/Chap1/total-size
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
|
||||
###
|
||||
### total_size
|
||||
###
|
||||
|
||||
## Chapter 1 section 4
|
||||
|
||||
sub total_size {
|
||||
my ($top) = @_;
|
||||
my $total = -s $top;
|
||||
my $DIR;
|
||||
|
||||
return $total if -f $top;
|
||||
unless (opendir $DIR, $top) {
|
||||
warn "Couldn't open directory $top: $!; skipping.\n";
|
||||
return $total;
|
||||
}
|
||||
|
||||
my $file;
|
||||
while ($file = readdir $DIR) {
|
||||
next if $file eq '.' || $file eq '..';
|
||||
$total += total_size("$top/$file");
|
||||
}
|
||||
|
||||
closedir $DIR;
|
||||
return $total;
|
||||
}
|
||||
Reference in New Issue
Block a user