File Coverage

blib/lib/finddepth.pl
Criterion Covered Total %
statement 3 4 75.0
branch n/a
condition n/a
subroutine 1 2 50.0
pod n/a
total 4 6 66.6


line stmt bran cond sub pod time code
1             # Usage:
2             # require "finddepth.pl";
3             #
4             # &finddepth('/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             # }
29              
30              
31 1     1   1020 use File::Find ();
  1         2  
  1         80  
32              
33             *name = *File::Find::name;
34             *prune = *File::Find::prune;
35             *dir = *File::Find::dir;
36             *topdir = *File::Find::topdir;
37             *topdev = *File::Find::topdev;
38             *topino = *File::Find::topino;
39             *topmode = *File::Find::topmode;
40             *topnlink = *File::Find::topnlink;
41              
42             sub finddepth {
43 0     0     &File::Find::finddepth(\&wanted, @_);
44             }
45              
46             1;