sub wanted {
return unless -f $_;
my $old_flag = -M $_ > 180 ? 'old' : 'new';
$ages{$File::Find::dir}{$old_flag}++;
}
Likely this is in a little script and I'd have no
complaint with its expeditious style. Something of the
thank-goodness-I-got-it-to-work style with which I am quite
familiar.
There is certainly a trap of believing variable names.
Like believing the documentation.
This looks like code that was refactored because the
routine name also seems to reflect a time when the author
was going to use a boolean return here and effect his count
elsewhere.
If this was part of a larger body of code...
My first concerns, assuming it does what is wanted, are:
- Is 180 magic?
- Where did %ages come from?
- Are 'old' and 'new' magical, Hash keys can be a difficult call on magicalness.
- Is the routine name okay. Maybe a leading underscore.
The $old_flag might make my list, a meaningless name like
$var seems better. But it is an issue for only
two lines.
I would consider inlining:
# untested
if ( -f $file) {
$age{$File::Find::dir}{ -M $file < 180 ? 'old' : 'new' }++;
}
|