5 use experimental 'multidimensional';
6 use List::Util qw(sum);
16 } elsif (/^\$ cd \.\.$/) {
18 } elsif (/^\$ cd (.*)/) {
21 } elsif (/^dir (.*)/) {
22 $dirs{join('/', @path, $1)} = 0;
23 } elsif (/^(\d+) (.*)/) {
24 my $file = join('/', @path, $2);
29 for my $dir (keys %dirs) {
30 for my $file (keys %files) {
31 $dirs{$dir} += $files{$file} if $file =~ /^$dir\//;
35 say sum map { $dirs{$_} >= 100_000 ? 0 : $dirs{$_} } keys %dirs;