in reply to Directory size 1 level deep

Yet another way. Like pelagic's, you can set the level to stop at (defaults to 1, as requested). Personally, I've always preferred File::Find::Rule to File::Find.
#!/usr/bin/perl -w use strict; use File::Find::Rule; my ($dir, $show_level) = @ARGV; $show_level ||= 1; for my $current(File::Find::Rule->directory->not_name( qr/^\.+$/)->max +depth($show_level)->in($dir)) { my $size = 0; $size += $_ for map -s, File::Find::Rule->file->in($current); print "DIR $current = $size\n"; }