我正在编写一个监视文件更改的 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 更改时都会调用此处理程序两次(增加 $counter 两次):
echo abc > /tmp/foo
为什么?