Module-free version. In brief:
perl -le '$size += (-f $_ ? -s _ : 0) for (<*>); print $size'
Unnecessarily cryptic, sorry.
(-f $filename) checks whether something is a plain file, as opposed to a socket, directory, link, or some other weird beast. The above is in a for loop, so
$_ is each filename coming out of
<*>.
(-s $filename) gives the size. Except that we've already called
stat() on the file, so we don't want to take the time to do it again, which is what the magic underscore filehandle is good for.
Finally, <*> does a pattern match on the current directory. You may prefer to say glob("*").
Readable version:
my $size = 0;
for my $filename (glob("*")) {
next unless -f $filename;
$size += -s _;
}