For the main point of your code, I think it's excellent
the way that you've used sort() on stat() .
But, I hope it's helpful to point out that the opendir() statement is broken, as it was written at the time of my response, because it tests $dir for Truth rather than opendir() , and that's not what you want.
To use the perlop '||' with opendir() the parentheses are not optional. Otherwise, use or which is more reliable in statements such as open() and opendir() , because the precedence of or is so low that it doesn't even require those pesky parentheses.
(deleted my own bad -here)
But, as I said, this is a small tweak that shouldn't take away from what seems to me otherwise to be a good idea.