"Rainer" == Rainer Weikusat <[email protected]> writes:
Rainer> There's no example of expression chaining in there either.
In the pod for File::Finder:
Synopsis:
use File::Finder;
## simulate "-type f"
my $all_files = File::Finder->type('f');
## any rule can be extended:
my $all_files_printer = $all_files->print;
## traditional use: generating "wanted" subroutines:
use File::Find;
find($all_files_printer, @starting_points);
## or, we can gather up the results immediately:
my @results = $all_files->in(@starting_points);
## -depth and -follow are noted, but need a bit of help for find:
my $deep_dirs = File::Finder->depth->type('d')->ls->exec('rmdir','{}'); find($deep_dirs->as_options, @places);
Examples in pod:
my $files_print = $files->print;
my $files_depth_print = $files->depth->print;
my $big_or_old_files =
$files->left->size("+50")->or->atime("+30")->right;
my @names = File::Finder->in("/tmp");
in File::Finder::Steps:
my $big_or_old = File::Finder
->type('f')
->left
->size("+100")->or->mtime("+90")
->right;
find($big_or_old->ls, "/tmp");
# list all non-files in /tmp
File::Finder->not->type('f')->ls->in("/tmp");
# list all files and dirs, but don't descend into CVS dir contents: File::Finder->type('d')->name('CVS')->prune->comma->ls->in('.');
my $pm_files = File::Finder->name('*.pm')->in('.');
my $pm_files_too = File::Finder->name(qr/pm$/)->in('.');
my $files = File::Finder->type('f');
# find files that are exactly mode 644
my $files_644 = $files->perm(0644);
# find files that are at least world executable:
my $files_world_exec = $files->perm("-1");
# find files that have some executable bit set:
my $files_exec = $files->perm("+0111");
my $blaster = File::Finder->atime("+30")->eval(sub { unlink });
my $old = File::Finder->atime("+30");
my $big = File::Finder->size("+100");
my $old_or_big = File::Finder->eval($old)->or->eval($big);
my $killer = File::Finder->eval(sub { unlink });
my $kill_old_or_big =
File::Finder->eval($old_or_big)->ls->eval($killer); $kill_old_or_big->in('/tmp');
my $plugh_files = File::Finder->type('f')->contains(qr/plugh/);
Truly, Rainer, I sincerely doubt your ability to read a perldoc page
now. {sigh}
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 <
[email protected]> <URL:
http://www.stonehenge.com/merlyn/>
Perl/Unix/Dart consulting, Technical writing, Comedy, etc. etc.
Still trying to think of something clever for the fourth line of this .sig
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)