When I first thought up the programming exercise I described last week in Are your files SM? M? L? XL? , my intention was to have a trivial exercise for applicants to carry out. HR was passing through lots of applicants who had detailed database knowledge, but were not at all programmers. They couldn't name simple Unix commands, couldn't talk about how to carry out a task in Perl or shell or as a pipeline of Unix commands. I thought this exercise would be simple for any experienced programmer to carry out, never mind style or performance points. Shortly after I came up with the idea, I realized it could mostly be done as a Unix pipeline. find ~/ -type f -printf "%s\n" |\ perl5.10 -n -E 'say length' |\ sort |\ uniq -c |\ perl5.10 -n -E ' |\ $fill, $count, $size) = split /\s+/; |\ $exp = 10**($size-1) |\ say "$exp $count" ' Although I hadn't used the option before, m