use strict; use File::Recurse; my $size; my %files = Recurse(['.'], {match => '\.mp3', nomatch => '\.html$'}); foreach (sort keys %files) { my $directory = $_; print " Directory: $directory\n"; Recurse(\&sum_size, $directory, \$size); print "Total size: $size\n"; } sub sum_size { my ($file, $total_size_ref) = @_; stat($file); unless (-d $_) { $total_size_ref += -s $_; } }