What I actually had in mind when I came up with the challenge was something like the following ... the sort of thing you find in SysAdmin magazine or Randall Schwartz's columns.
Started with some directory specified as a command-line argument, process all the directory contents: ignore '.' and '..'; add directories to the queue of directories waiting to be processed, and get the log10 size of any file, incrementing the associated count.
For all the sizes encountered, in increasing order, convert to a (unreachable) max size, and print the size and the number of files in that range.
I can do without the File::Find module, the task at hand is pretty simple. On the other hand, my tolerance for ugly punctuation has dropped in the past few years, so I need the Readonly. Without that, it becomes ...
The dots would be more tolerable with an SQL 'in' operator, or a Perl6 Junction:
Using a subroutine to localize the ugliness would make the double escape bearable.
So the final result is down to 35 lines, including blanks and closing curlies.