2012-05-10 6 views
2

IO::Eventを使用して、新しいファイルがディレクトリに追加されたときを検出しようとしています。私はIO :: Eventライブラリが新しく、簡単に実装できるかどうかを知りたいと思っています。IO :: Eventを使用してディレクトリ内の新しいファイルを検出する

私はそれが運がない何かをすることができるかどうかを確認するために、以下のコードを試しました。 openの代わりにopendirを使用しようとするとクラッシュしました。

私は、このライブラリが私に探しているものを提供できるかどうかを探しています。私はそれを自分でコーディングすることができるので、普通のPerlで解決する必要はありません。私がこれを見ている唯一の理由は、Proc::JobQueue::EventQueueを使いたいからです。私はちょうどProc::JobQueueを使用してソリューションをコーディングすることができますが、これはきれいかもしれないと思った。

#!perl 

use warnings; 
use strict; 
use IO::Event; 

open my $dirhandle,'/some/path/here/'; 

my $event = IO::Event->new($dirhandle); 

Event::loop(); 

close $dirhandle; 

sub ie_input{ 
    print "ie_input called\n"; 
} 

sub ie_read_ready{ 
    print "ie_read_ready called\n"; 
} 

sub ie_werror{ 
    print "ie_werrory called\n"; 
} 

sub ie_output{ 
    print "ie_output called\n"; 
} 

答えて

4

File::ChangeNotifyFile::ChangeNotify::Watcherを使用することをお勧めします。

use File::ChangeNotify; 

my $watcher = 
    File::ChangeNotify->instantiate_watcher 
     (directories => [ '/my/path', '/my/other' ], 
      regex  => qr/\.(?:pm|conf|yml)$/, 
     ); 

if (my @events = $watcher->new_events()) { ... } 

$watcher->watch($handler); 
関連する問題