Perl 如何在Windows上使用File::ChangeNotify?
我已在Windows系统上安装并尝试运行以下代码:Perl 如何在Windows上使用File::ChangeNotify?,perl,winapi,Perl,Winapi,我已在Windows系统上安装并尝试运行以下代码: my $watcher = File::ChangeNotify->instantiate_watcher ( directories => [ 'C:\files' ], filter => qr/\.txt$/ ); # # blocking while ( my @events = $watcher->wait_for_events(
my $watcher =
File::ChangeNotify->instantiate_watcher
( directories => [ 'C:\files' ],
filter => qr/\.txt$/
);
# # blocking
while ( my @events = $watcher->wait_for_events() ) { print "new event"}
当我运行脚本并尝试创建一个新的.txt
文件或修改c:\files
下的.txt
文件时,脚本没有打印任何内容。如果我添加这一行,它对我有效(在linux上):
$| = 1;
然后我看到新事件
请参阅:$|
或$OUTPUT\u 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"}
更新:正如cjm敏锐地指出的那样,添加换行符可以作为$\124;
的替代方案:
while ( my @events = $watcher->wait_for_events() ) { print "new event\n"}
或打印“新事件\n”