我在Windows系统上安装了File :: ChangeNotify并尝试运行以下代码:
my $watcher =
File::ChangeNotify->instantiate_watcher
( directories => [ 'C:\files' ],
filter => qr/\.txt$/
);
# # blocking
while ( my @events = $watcher->wait_for_events() ) { print "new event"}
Run Code Online (Sandbox Code Playgroud)
当我运行脚本并尝试创建新.txt文件或修改脚本.txt下c:\files的文件时没有打印任何内容.
如果我添加这行,它适用于我(在Linux上):
$| = 1;
Run Code Online (Sandbox Code Playgroud)
然后我明白了new event.
请参阅perldoc perlvar:$|或$OUTPUT_AUTOFLUSH
这是完整的代码:
use warnings;
use strict;
use File::ChangeNotify;
$| = 1;
my $watcher =
File::ChangeNotify->instantiate_watcher
( directories => [ 'C:\files' ],
filter => qr/\.txt$/
);
# # blocking
while ( my @events = $watcher->wait_for_events() ) { print "new event"}
Run Code Online (Sandbox Code Playgroud)
更新:正如cjm精明地指出的那样,添加换行符可以替代$|:
while ( my @events = $watcher->wait_for_events() ) { print "new event\n"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
640 次 |
| 最近记录: |