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 31use File::Find (); 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 42sub finddepth { 43 &File::Find::finddepth(\&wanted, @_); 44} 45 461; 47