use File::Finder; my %sizes; my @START = "."; $sizes{$_->[0]} += $_->[1] for File::Finder->type('f')->mtime('-3')->collect(sub { [(stat)[4, 7]] }, @START); for (sort { $sizes{$b} <=> $sizes{$a} } keys %sizes) { printf "%20s %.2f MB\n", getpwuid($_) || "($_)", $sizes{$_}/1e6; }