Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  IO::ASYNC::FILE (3)

.ds Aq ’


"IO::Async::File" - watch a file for changes



 use IO::Async::File;

 use IO::Async::Loop;
 my $loop = IO::Async::Loop->new;

 my $file = IO::Async::File->new(
    filename => "config.ini",
    on_mtime_changed => sub {
       my ( $self ) = @_;
       print STDERR "Config file has changed\n";
       reload_config( $self->handle );

 $loop->add( $file );



This subclass of IO::Async::Notifier watches an open filehandle or named filesystem entity for changes in its stat() fields. It invokes various events when the values of these fields change. It is most often used to watch a file for size changes; for this task see also IO::Async::FileStream.

While called File, it is not required that the watched filehandle be a regular file. It is possible to watch anything that stat(2) may be called on, such as directories or other filesystem entities.


The following events are invoked, either using subclass methods or CODE references in parameters.

on_dev_changed CW$new_dev, CW$old_dev

on_ino_changed CW$new_ino, CW$old_ino


on_ctime_changed CW$new_ctime, CW$old_ctime

Invoked when each of the individual stat() fields have changed. All the stat() fields are supported apart from blocks and blksize. Each is passed the new and old values of the field.

on_devino_changed CW$new_stat, CW$old_stat

Invoked when either of the dev or ino fields have changed. It is passed two File::stat instances containing the complete old and new stat() fields. This can be used to observe when a named file is renamed; it will not be observed to happen on opened filehandles.

on_stat_changed CW$new_stat, CW$old_stat

Invoked when any of the stat() fields have changed. It is passed two File::stat instances containing the old and new stat() fields.


The following named parameters may be passed to new or configure.

    handle => IO

The opened filehandle to watch for stat() changes if filename is not supplied.

    filename => STRING

Optional. If supplied, watches the named file rather than the filehandle given in handle. The file will be opened for reading and then watched for renames. If the file is renamed, the new filename is opened and tracked similarly after closing the previous file.

    interval => NUM

Optional. The interval in seconds to poll the filehandle using stat(2) looking for size changes. A default of 2 seconds will be applied if not defined.



   $handle = $file->handle

Returns the filehandle currently associated with the instance; either the one passed to the handle parameter, or opened from the filename parameter.


Paul Evans <>
Search for    or go to Top of page |  Section 3 |  Main Index

perl v5.20.3 IO::ASYNC::FILE (3) 2015-12-15

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.