This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[FIX] Re: UTF-8 failures (surprise!)
[perl5.git] / lib / find.pl
CommitLineData
6e21c824
LW
1# Usage:
2# require "find.pl";
3#
4# &find('/foo','/bar');
5#
6# sub wanted { ... }
7# where wanted does whatever you want. $dir contains the
8# current directory name, and $_ the current filename within
9# that directory. $name contains "$dir/$_". You are cd'ed
10# to $dir when the function is called. The function may
11# set $prune to prune the tree.
12#
13# This library is primarily for find2perl, which, when fed
14#
15# find2perl / -name .nfs\* -mtime +7 -exec rm -f {} \; -o -fstype nfs -prune
16#
17# spits out something like this
18#
19# sub wanted {
20# /^\.nfs.*$/ &&
21# (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
22# int(-M _) > 7 &&
23# unlink($_)
24# ||
25# ($nlink || (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_))) &&
26# $dev < 0 &&
27# ($prune = 1);
28# }
8990e307
LW
29#
30# Set the variable $dont_use_nlink if you're using AFS, since AFS cheats.
6e21c824 31
dffa8cde 32use File::Find ();
6e21c824 33
28312d68
RS
34*name = *File::Find::name;
35*prune = *File::Find::prune;
36*dir = *File::Find::dir;
37*topdir = *File::Find::topdir;
38*topdev = *File::Find::topdev;
39*topino = *File::Find::topino;
40*topmode = *File::Find::topmode;
41*topnlink = *File::Find::topnlink;
6e21c824 42
dffa8cde 43sub find {
44 &File::Find::find(\&wanted, @_);
6e21c824 45}
dffa8cde 46
6e21c824 471;