my (@dirs, @files) = ($TargetPath); scalar map{ push @{ (-d) ? \@dirs : \@files }, $_ } glob pop(@dirs) . '/*' while @dirs; my $size += -s for @files;