Thanks! In this case, at least, there aren't any symbolic links to worry about.
"Tanton Gibbs" <thgibbs@delta To: <[EMAIL PROTECTED]> farms.com> cc: Subject: Re: Help with File::Find 01/11/02 11:32 AM -e might actually fail if they are symbolic links that don't exist...you might check to make sure. ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, January 11, 2002 12:27 PM Subject: RE: Help with File::Find > > Bob Showalter > <Bob_Showalter@taylor To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>, > white.com> [EMAIL PROTECTED] > cc: > 01/11/02 11:06 AM Subject: RE: Help with File::Find > > > > > > > > > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > > Sent: Friday, January 11, 2002 11:58 AM > > To: [EMAIL PROTECTED] > > Subject: Help with File::Find > > > > > > Hi Everyone! > > > > I'm fairly new to Perl, and completely new to submitting to > > the list, so > > please be easy on me. :-) > > > > The purpose of the code I wrote (listed below) is to go > > through the current > > directory and all of its subdirectories and report the > > filename, size and > > age of the x largest files, where x depends on the argument > > supplied on the > > command line and the number of files in the directory. I'm > > sure there's an > > easier way to do this with a UNIX utility (or with Perl), but > > this program > > has been a good learning experience for me. > > > > The code below runs without any syntax errors, but File::Find > > (which I love > > and use frequently) or the -e file test doesn't give the > > results I expect. > > Specifically, my (explicit) checks show that the test in line > > 11 does not > > always evaluate to TRUE for values of $_ corresponding to > > legitimate (i.e., > > existing and size > 0) files, which means I'm missing files > > that should be > > in my final output. If I change line 11for debugging > > purposes to simply > > > > if ($_){ > > > > all files (including the previously missed ones) are printed out (also > > along with the directories now) as expected, but for the > > files that would > > not have passed the (-e $_) test, the values assigned for > > filesize and age > > in line 12 are (tested to be) undefined. If this is any > > help, the files > > that don't pass the (-e $_) of test of line 11 are (perhaps > > coincidentally) > > the biggest files (~55 GB) in the directory. > > I don't really have an answer, but conceptually, why would you need > a -e test at all? If the file doesn't exist, how would wanted() get > called for it? > > Also, have you tried doing the -e on $File::Find::name instead of $_ ? > Perhaps there's some problem in changing directories. > > Hi Bob, > > Thanks for the response! Good question: My original code - which produced > the same results - used the -f test because I don't want to include > directories in my final output. I don't think the problem is with changing > directories, because within a given directory, some files will be listed > and others will be omitted. > > Thanks! > > > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]