in reply to processing file while file is in use

You might want to look at File::Tail.

G. Wade
  • Comment on Re: processing file while file is in use

Replies are listed 'Best First'.
Re^2: processing file while file is in use
by grashoper (Monk) on Apr 21, 2009 at 16:42 UTC
    How could I capture from my logfile into a new file using this? I tried this but I think I need $name to be defined somewhere accidentally posted this twice..is the second call to file tail needed? I think they are just showing examples of usage..could I just open a new file where it reads and print to that new filehandle, open that file and do my process?
    use File::Tail; use win32::OLE qw(in); $file=File::Tail->new("E:\\mibor_timingtest\\mibor\\output.txt"); while (defined($line=$file->read)) { print "$line"; } use File::Tail; $file=File::Tail->new(name=>$name, maxinterval=>300, adjustafter=>7) +; while (defined($line=$file->read)) { open(OUT ">>", "c:\\test.txt"); print(OUT "$line"); } sub_do_something{ use win32::OLE qw(in); $search="stuff2searchfor"; open(OUT, "c:\\test.txt"); my @array=<INFO>; close (INFO); foreach $line(@array){ if ($line =~ /$search/) { print "found $line"; sendmail_call_here..to send alert }

      From the documentation, it looks like you use File::Tail to open the file in the reading process and read a line at a time.

      The module handles all of the housekeeping about the file being written to while you are reading it. There should be no reason for the writing process to change.

      G. Wade
        I am looking to perform some processing based on the data being written to the file, so I was thinking I would periodically open a logfile write to it, test for a condition close it, etc. does this make any sense? my goal is to be informed should errors occur with running loadrunner tests, so that if a change takes place on the server and my script starts failing I am notified, as well as having notifications sent should requests take longer than expected on the server.