ファイルの変更を監視する Perl スクリプトを作成しています。
#!/usr/bin/perl
use strict;
use Linux::Inotify2;
my $inotify = new Linux::Inotify2 or die $!;
my $filename = "/tmp/foo";
my $counter = 0;
$inotify->watch (
$filename,
IN_MODIFY,
sub {
++$counter;
print "changed: $counter\n";
}
) or die $!;
1 while $inotify->poll;
このハンドラーは、次のようにテストすると、/tmp/foo が変更されるたびに 2 回呼び出されます ($counter を 2 回インクリメントします)。
echo abc > /tmp/foo
なんで?