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.