#!/usr/bin/perl use strict; my $dir = '.'; my %directories = (); my $dirsRef = \%directories; &find_size($dir, $dirsRef); foreach my $key (sort keys %directories) { print "$key has $directories{$key} bytes in it\n"; } sub find_size { my ($currentDir, $dirsRef) = @_; opendir DIR, $currentDir; my @files = grep !/^\.\.?$/, readdir DIR; for my $blah (@files) { if (-d $blah) { &find_size($blah, $dirsRef); } else { $dirsRef->{$currentDir} += (-s $blah); } } }