NAME
Linux::Perl::inotify
SYNOPSIS
my $inf = Linux::Perl::inotify->new();
my $wd = $inf->add( path => $path, events => ['CREATE', 'ONLYDIR'] );
my @events = $inf->read();
$inf->remove($wd);
DESCRIPTION
This is an interface to Linux’s “inotify” feature.
METHODS
CLASS->EVENT_NUMBER()
A hash reference of event names to numeric values. The member keys are:
ACCESS
,MODIFY
,ATTRIB
OPEN
,CLOSE
,CLOSE_WRITE
,CLOSE_NOWRITE
MOVE
,MOVED_FROM
,MOVED_TO
,MOVE_SELF
CREATE
,DELETE
,DELETE_SELF
UNMOUNT
,Q_OVERFLOW
,IGNORED
,ISDIR
See man 7 inotify
for details of what these mean. This is useful to parse the return from read()
(below).
CLASS->new( %OPTS )
Instantiates a new inotify instance.
%OPTS is:
flags
- Optional, an array reference of either or both ofNONBLOCK
and/orCLOEXEC
.
$wd = OBJ->add( %OPTS )
Adds to an inotify instance and returns a watch descriptor. See man 2 inotify_add_watch
for more information.
%OPTS is:
path
- The filesystem path to monitor.events
- An array reference of events to monitor for. Recognized events are:ACCESS
,MODIFY
,ATTRIB
OPEN
,CLOSE
,CLOSE_WRITE
,CLOSE_NOWRITE
MOVE
,MOVED_FROM
,MOVED_TO
,MOVE_SELF
CREATE
,DELETE
,DELETE_SELF
UNMOUNT
,Q_OVERFLOW
,IGNORED
,ISDIR
ALL_EVENTS
ONLYDIR
,DONT_FOLLOW
,EXCL_UNLINK
,MASK_CREATE
,MASK_ADD
,ONESHOT
Note that your kernel may not recognize all of these.
OBJ->fileno()
Returns the inotify instance’s file descriptor number.
@events = OBJ->read()
Reads events from the inotify instance. Each event is returned as a hash reference with members wd
, mask
, cookie
, and name
. See man 7 inotify
for details about what these mean. (Use the members of EVENT_NUMBER()
above to parse mask
.)
Note that if the underlying inotify object is not set NONBLOCK
then this call will block until there is an inotify event to read.
In scalar context this returns the number of events that happened.
An empty return here indicates a read failure; $!
will contain the usual information about the failure.
OBJ->remove( $WD )
Analogous to man 2 inotify_rm_watch
.