use File::Find; my $dir = 'c:/test'; my $size = 0; find( \&size, $dir ); sub size { # we get each filename in $_ my $file_size = -s $_; $size += $file_size; print "Found $_ $file_size Bytes\n"; } print "$size Bytes in '$dir' and all subdirs\n";