in reply to Re: Find a file in a list of directories
in thread Find a file in a list of directories
IMO in general grep and map shouldn't be chained together, map can do greps job without having retraverse the array.
And frankly why bother with map and grep at all? This is much more efficient.return (map{-e "$_/$target" ? "$_/$target" : ()} @dir)[0];
Oh and before the premature optimization police arrest me, remember that we are searching a filesystem (possible remote etc) here. That call to -e could take a while and if we have to do more of them than we really need to then we could end up wasting a lot of time.sub FileFinder { my $target=shift; -e "$_/$target" && return "$_/$target" foreach @_; undef }
Adjust the file test to your taste ;-)
Yves / DeMerphq
---
Writing a good benchmark isnt as easy as it might look.
|
---|
In Section
Cool Uses for Perl