The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/opt/bin/perl

# very simple example without further modules

use Linux::Inotify2;

my $inotify = new Linux::Inotify2;

$inotify->watch ("/etc/passwd", IN_ACCESS | IN_MODIFY, sub {
   my $e = shift;
   printf "events for <%s> received: %s\n", $e->fullname, $e->mask;
   print "$e->{w}{name} was accessed\n" if $e->IN_ACCESS;
   print "$e->{w}{name} was modified\n" if $e->IN_MODIFY;
   print "$e->{w}{name} is no longer mounted\n" if $e->IN_UNMOUNT;
   print "events for $e->{w}{name} have been lost\n" if $e->IN_Q_OVERFLOW;

   $e->w->cancel;
});

$inotify->poll;