BEGIN { *::find = \&find } sub find{ grep{ grep &{$_[0]}($_), ( open IN, $_ and ) } map{ opendir DIR, $_ and &{sub{ map $_[0].$_, @_[1..$#_] }}($_, readdir DIR) } @_[1..$#_] }