NAME
    Linux::Inotify - Classes for supporting inotify in Linux Kernel >=
    2.6.13

SYNOPSIS
    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.

DESCRIPTION
  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 contructor

       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
    Copyright 2005 by Torsten Werner <twerner@debian.org>. The code is
    licensed under the same license as perl: perlgpl or perlartistic.

