Re: find2perl
- From: oryann9@xxxxxxxxx (Oryann9)
- Date: Thu, 17 Jan 2008 12:52:13 -0800 (PST)
-
Will anyone help me with this issue? These three lines of code work,
but work in a way that I am not expecting. When I tell this module to set
no_chdir to 1 it should NOT descend directories yet it does. Am I
supposed to have a wanted routine other than whats below? Below are the 3
lines I have tried and below that is the entire script.
thank you!
1) File::Find::find ( { wanted => $wanted, no_chdir =>
$File::Find::no_chdir }, $fs ) ;
2) File::Find::find ( { wanted => $wanted, no_chdir => +shift }, $fs )
;
3) File::Find::find ( { wanted => $wanted, no_chdir =>
$File::Find::no_chdir = shift}, $fs
#!/usr/bin/perl
use strict ;
use warnings ;
use File::Find ;
use File::Find::Closures qw(find_by_min_size) ;
##-- Begin Format Code --##
my ($key,$user,$grp,$mod,$sz) ;
<snip>
##-- End Format Code --##
sub date_me {
my $mod = shift @_ ;
my ($seconds, $minutes, $hours, $day_of_month, $month, $year,
undef, undef, undef) = localtime($mod) ;
#printf("%02d:%02d:%02d-%02d/%02d/%04d",
( $hours, $minutes, $seconds, $month+1, $day_of_month,
$year+1900 ) ;
}
my $log = qq(/var/adm/find_hog.log) ;
my $logg ;
open ($logg, '>>', $log) or warn "file '$logg' was not opened $!" ;
START:
print qq (\nPlease enter filesystem name in the form of /fsname or /
just for root\n) ;
print "\n";
chomp (my $fs = <>) ;
if ( $fs eq "/" ) { # only if the root directory, do not descend.
find_me ( $fs, 0 );
}
elsif ( $fs =~ m|^/\w+|i ) { ## matches /var
find_me ( $fs, 1 );
}
elsif ( $fs =~ m|^[/.\w+]|i ) { ## matches /.ssh
find_me ( $fs, 1 );
}
else {
warn "\nFilesystem name does not match expression.\nPlease contact
Unix on call and or try again\n
goto START;
}
my ( @sorted_large_files, @large_files ) ;
sub find_me {
use Data::Dumper;
my $fs = shift;
#local $File::Find::prune = shift; ##-- localize prune to just this
block --##
#my @directory = ($fs) ;
use constant MAX_SIZE => (25*1024*1024) ;
use constant DIVISOR => (1024) ;
my ( $wanted, $list ) = find_by_min_size ( MAX_SIZE ) ;
File::Find::find ( { wanted => $wanted, no_chdir => +shift }, $fs )
;
@large_files = $list->() ;
@sorted_large_files =
sort { -s $b <=> -s $a }
@large_files ;
} ##-- End sub --##
<snip>
--
Will / Can anyone help, pretty please?
____________________________________________________________________________________
Never miss a thing. Make Yahoo your home page.
http://www.yahoo.com/r/hs
.
- Follow-Ups:
- Re: find2perl
- From: Chas. Owens
- Re: find2perl
- From: Randal L. Schwartz
- Re: find2perl
- Prev by Date: Re: Searching text file and printing to new file
- Next by Date: Re: Memory Usage of my Script
- Previous by thread: Re: find2perl
- Next by thread: Re: find2perl
- Index(es):
Relevant Pages
|