diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2005-11-14 15:40:08 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2005-11-14 15:40:08 +0000 |
commit | 54bd407c97e6a92e0d8fe74bdc8d886f888a65cc (patch) | |
tree | 61b477e5c0678a7f741040466f1aa3ecaf1cc38a | |
parent | 7eb550cf010090aecb73da60fde61194798b89d1 (diff) | |
download | perl-54bd407c97e6a92e0d8fe74bdc8d886f888a65cc.tar.gz |
A better fix for [perl #35847] File::Find not performing as documented,
suggested by Darren Dunham. Includes a fix to the code example that
uses File::Find in perlfaq3.
p4raw-id: //depot/perl@26128
-rw-r--r-- | lib/File/Find.pm | 9 | ||||
-rw-r--r-- | pod/perlfaq3.pod | 8 |
2 files changed, 9 insertions, 8 deletions
diff --git a/lib/File/Find.pm b/lib/File/Find.pm index e41c2418cf..497051e063 100644 --- a/lib/File/Find.pm +++ b/lib/File/Find.pm @@ -120,11 +120,10 @@ If either I<follow> or I<follow_fast> is in effect: =item * -Previous versions of File::Find were guaranteed to call an I<lstat> -before the user's C<wanted()> function was called, but this is no -longer the case. Since this depends on C<$File::Find::dont_use_nlink>, $^O, -and other factors, fast file checks involving C<_> are not recommended -unless C<wanted()> calls I<lstat> first. +It is guaranteed that an I<lstat> has been called before the user's +C<wanted()> function is called. This enables fast file checks involving S<_>. +Note that this guarantee no longer holds if I<follow> or I<follow_fast> +are not set. =item * diff --git a/pod/perlfaq3.pod b/pod/perlfaq3.pod index 67a8d43627..02e15b7c5c 100644 --- a/pod/perlfaq3.pod +++ b/pod/perlfaq3.pod @@ -85,10 +85,12 @@ with File::Find which is part of the standard library. use File::Find; my @files; - find sub { push @files, $File::Find::name if -f _ && /\.pm$/ }, - @INC; + find( + sub { push @files, $File::Find::name if -f $File::Find::name && /\.pm$/ }, + @INC + ); - print join "\n", @files; + print "$_\n" for @files; If you simply need to quickly check to see if a module is available, you can check for its documentation. If you can |