http://search.cpan.org/perldoc?Filesys::Notify::Simple
こういうものがあるんですね。
#!/usr/local/bin/perl use strict; use Filesys::Notify::Simple; use Data::Dumper; main(); sub main { my $watcher = Filesys::Notify::Simple->new([ "./test" ]); $watcher->wait(sub { for my $event (@_) { print STDERR Dumper($event); $event->{path} } }); }
と書いて実行し、ファイルやディレクトリを追加/変更/削除すると、そのファイル名やディレクトリの名称を通知してくれます。
[endo@colinux tmp]$ ./foo.pl $VAR1 = { 'path' => '/home/endo/tmp/test/new_file.txt' }; [endo@colinux tmp]$ ./foo.pl $VAR1 = { 'path' => '/home/endo/tmp/test/new_dir' };
Filesys::Notify::Simple は、追加/変更/削除のあったpathだけを通知するので、更に詳しい情報が知りたければ、File::ChangeNotify や Filesys::Notify を使えばいいのかな?