use constant MAX_DIR_SIZE => 100 * 1_048_576; # max of 100 MB use constant UPLOAD_DIR => "/path/to/upload/dir"; # later if ( dir_size( UPLOAD_DIR ) + $ENV{CONTENT_LENGTH} > MAX_DIR_SIZE ) { # don't allow the upload } # later sub dir_size { my $dir = shift; my $dir_size = 0; opendir DIR, $dir or die "Unable to open $dir: $!"; while ( readdir DIR ) { $dir_size += -s "$dir/$_"; } return $dir_size; }