http://qs321.pair.com?node_id=758064


in reply to monitor text files

The various examples in the synopsis of File::Monitor are not all consistent with each other and you have copied some of the inconsistencies into your program. In particular, you create a $monitor object but then try to call the scan method in $object, which doesn't exist.

Here is a working example of a monitor with callback.

use strict; use warnings; use File::Monitor; my $monitor = File::Monitor->new(); $monitor->watch( '/tmp/otherfile.txt', sub { my ( $name, $event, $change ) = @_; print "file has been changed\n"; } ); while(1) { foreach my $delta ($monitor->scan) { print $delta->name . " has changed\n"; } sleep(10); }

But this depends on polling for changes, which is not ideal.

Can you have your application which creates the data initiate the further processing? This would minimize delay and eliminate the waste of polling.