use File::Spec::Functions qw( no_upwards ); use File::Find; use List::Util qw( sum ); my ( $num, $size ); find( { preprocess => sub { my @l = no_upwards( @_ ); $num += @l; $size += sum map -s, @l; return @_; }, wanted => sub {}, }, "foo/bar/" );