Re: counting down in a for
DrOwl_at_23.me.uk
Date: 12/11/03
- Next message: Amit Phatak: "Invoking multiple analyses"
- Previous message: George Georgalis: "Re: recursive replace command line"
- In reply to: Drieux: "Re: counting down in a for"
- Next in thread: Rob Dixon: "Re: counting down in a for"
- Reply: Rob Dixon: "Re: counting down in a for"
- Reply: Drieux: "Re: counting down in a for"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Thu, 11 Dec 2003 21:20:45 +0000 To: beginners@perl.org
At 20:45 11/12/2003, you wrote:
>On Dec 11, 2003, at 11:49 AM, drowl@23.me.uk wrote:
>[..]
>> there is probably a much better way of doing all this i am working on
>>the checkResults sub.
>>it should find the pollerAudit log created by the main process
>>(discover) the file format for the log file is
>>pollerAudit.M.D.Y.h.m.s.lan (MDYhms being month day year hrs min sec)
>[..]
>
>This Might be a good time to step back and
>look at this problem in terms of 'algorithm'
>then worry about the code side. Since, while,
>yes, I can 'read' your code, it may help to begin
>with 'what do you really want/need'?
>
>You are passing in two time values into a function,
>so that you can try to find the 'files' that would
>be made between those times, yes? In particular,
>you are looking for the most recent one, yes?
yes this is right i need the most recent one... as after the log is written it takes a few or more seconds for the command to return.
the "discover" or delta can be from a few seconds to a few minits (depending on the number of elements configured on the device)
>IF you only need the most recent one, then your basic
>iteration loop could be simplified with say
>
> for ( my ($fTime) = $highFileName; $fTime = $lowFileName; $fTime--)
> {
> #my($fullFileName)="pollerAudit.$fileDate.$_.log";
> # make one substitution
> my($fullFileName)="/$NH_HOME/log/pollerAudit.$fileDate.$fTime.log";
> if (-e "$fullFileName") {
> open UPDATELOG, "$fullFileName";
> my($reslutsLog) = <UPDATELOG>;
> close UPDATELOG;
> last; # break out of the loop we found one
> };
> };
this looks good to me i shall try it out tomorro, but i had a look on CPAN and found a golb module that may help???
>The question really is how many files will be in the
>'log' directory - who is cleaning them up - and the
>actual 'delta' between the $highFileName time value,
>and the actual 'youngest file' in the directory.
there are a "lot" of file in the dir, they are cycled / cleaned up, by a scheduled job every week,
but some will be a month old (ones the result from a monthly scheduled job)
>Why not Open the directory with say opendir()
>and get the list of files in it? then use
>the readdir() and 'grep' type tricks:
>
> opendir(DIR, $some_dir) || die "can't opendir $some_dir: $!";
> @today_files = grep {$_ =~ /^pollerAudit.$fileDate.*\.log$/ } readdir(DIR);
> closedir DIR;
humm if i have this list, can i "grep" through and find the one that contains "key" (ie host name)
that would do the trick...
>Then all you need to do is 'sort' that @today_files array...
>You might think of solving that problem with 'map',
>since you could then have a hash of 'existing files'
>and would have made one read of 'the directory block'
>and the rest is in core memory manipulations...
>
this could get messy as i could be running say 20 discovers and only after each one will the log file be ceated.
+new log could be created by non discover activities.
thanks for your help
Ritchie
>ciao
>drieux
>
>---
>
>
>--
>To unsubscribe, e-mail: beginners-unsubscribe@perl.org
>For additional commands, e-mail: beginners-help@perl.org
><http://learn.perl.org/> <http://learn.perl.org/first-response>
>
>
>
>
>
>---
>Incoming mail is certified Virus Free.
>Checked by AVG anti-virus system (http://www.grisoft.com).
>Version: 6.0.537 / Virus Database: 332 - Release Date: 06/11/2003
--- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.537 / Virus Database: 332 - Release Date: 06/11/2003
- Next message: Amit Phatak: "Invoking multiple analyses"
- Previous message: George Georgalis: "Re: recursive replace command line"
- In reply to: Drieux: "Re: counting down in a for"
- Next in thread: Rob Dixon: "Re: counting down in a for"
- Reply: Rob Dixon: "Re: counting down in a for"
- Reply: Drieux: "Re: counting down in a for"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]