2014-01-15 3 views
5

私はWindowsシステム上でFile::ChangeNotifyをインストールし、次のコードを実行しよう:私はスクリプトを実行したとき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"} 

を、スクリプトが何も印刷されませんでしたc:\filesの下に新しい.txtファイルを作成したり、.txtファイルを変更しよう。

答えて

5

それは私がこの行を追加した場合(Linuxの場合)私の作品:

$| = 1; 

をその後、私はnew eventを参照してください。

perldoc perlvarを参照してください。

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"} 

UPDATE:ここ$|又は$OUTPUT_AUTOFLUSH

は完全なコードであるCJMが鋭く$|の代替として改行作品を追加して、指摘するように:

while (my @events = $watcher->wait_for_events()) { print "new event\n"} 
+1

ありがとうございました – user3019319

+2

新しいイベントを印刷する\ n " – cjm

+0

@cjm:ありがとうございます。私は自分の答えを更新しました。 – toolic

関連する問題