[Israel.pm] File::Find::Recursive

Offer Kaye offer.kaye at gmail.com
Thu Oct 22 05:51:19 PDT 2009

On Thu, Oct 22, 2009 at 9:37 AM, Uri Bruck wrote:
> You mean rules like - avoid criticizing people in a public forum ?

Uri, you and I must visit very different public forums... read p5p much? ;)
Compared the stuff that sometimes goes on there, Shlomi's mild rebuke
(which was aimed at what Dov *does*, not *at* Dov) is not even worth a
raised eyebrow. And p5p is tame compared to some other public

Also while I don't always agree with Shlomi, he had a good point
regarding Dov's style of replying to emails and by replying on the
list he made sure other readers who perhaps are also not aware of how
annoying top-posting can be are also educated.

Dov's last reply is a pleasure to read and I think bottom line that is
the important thing :)

More on-topic, Dov - I don't understand the motivation and (without
looking at the code) what makes your F::F::R useful.

First of all, File::Find is already, by definition, recursive. So the
addition of "Recursive" in your module name seems to me at least to be

Secondly, the @wanted argument in F::F's "find" function, can include
*any* code you want, both for matching and for ignoring a given
criteria. How is F::F::R's different?

Thirdly, your sentance "File::Find::Rule which I found to be too
ambiguous" is not clear.
F::F::Rule is basically syntactic sugar over F::F, giving (if I
understand it correctly) a limited set of useful "shortcuts" to use
when searching for stuff. As the example shows it lets you for example
search for all files with a given extension, e.g.:

my @files = File::Find::Rule->file()
                              ->name( '*.pm' )
                              ->in( @INC );

Or clearly chain several rules together as in the example:

# find avis, movs, things over 200M and empty files
 $rule->any( File::Find::Rule->name( '*.avi', '*.mov' ),
             File::Find::Rule->size( '>200M' ),

Instead of implementing your own @wanted function in F::F for this
common use-cases. How is this ambiguous? What does your F::F::R do
that is different?

Hope this helps,
Offer Kaye

More information about the Perl mailing list