NAME
Linux::Inotify - Classes for supporting inotify in Linux Kernel >= 2.6.13
VERSION
version 0.06
DESCRIPTION
Linux::Inotify supports the new inotify interface of Linux which is a replacement of dnotify. Beside the class Linux::Inotify there two helper classes -- Linux::Inotify::Watch and Linux::Inotify::Event.
class Linux::Inotify
The following code
use Linux::Inotify;
my $notifier = Linux::Inotify->new();
returns a new notifier.
my $watch = $notifier->add_watch('filename', Linux::Inotify::MASK);
adds a watch to filename (see below), where MASK is one of ACCESS, MODIFY, ATTRIB, CLOSE_WRITE, CLOSE_NOWRITE, OPEN, MOVED_FROM, MOVED_TO, CREATE, DELETE, DELETE_SELF, UNMOUNT, Q_OVERFLOW, IGNORED, ISDIR, ONESHOT, CLOSE, MOVE or ALL_EVENTS.
my @events = $notifier->read();
reads and decodes all available data and returns an array of Linux::Inotify::Event objects (see below).
$notifier->close();
destroys the notifier and closes the associated file descriptor.
class Linux::Inotify::Watch
The constructor new is usually not called directly but via the add_watch method of the notifier. An alternative constructor.
my $watch_clone = $watch->clone('filename');
creates an new watch for filename but shares the same $notifier and MASK. This is indirectly used for recursing into subdirectories (see below). The destructor
$watch->remove()
destroys the watch safely. It does not matter if the kernel has already removed the watch itself, which may happen when the watched object has been deleted.
class Linux::Inotify::Event
The constructor is not called directly but through the read method of Linux::Inotify that returns an array of event objects. An Linux::Inotify::Event object has some interesting data members: mask, cookie and name. The method
$event->fullname();
returns the full name of the file or directory not only the name relative to the watch like the name member does contain.
$event->print();
prints the event to stdout in a human readable form.
my $new_watch = $event->add_watch();
creates a new watch for the file/directory of the event and shares the notifier and MASK of the original watch, that has generated the event. That is useful for recursing into subdirectories.
AUTHOR
Original author: Torsten Werner
Current maintainer: Graham Ollis <plicease@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2018-2022 by Torsten Werner <twerner@debian.org>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.