views:

145

answers:

3

I've been using Win32::FileNotify on Windows, and I was curious to know if there were something similar for Linux and OS X. I haven't been able to find such a module using Google. Does anyone here know of such a thing?

+1  A: 

While I don't know of a specific cross platform solution there is inotify on linux (well on modern kernels from 2.6.13) and from the Inotify module from CPAN. As for OS X, there is apparently the kqueue syscall but I have no experience of using it.

tyranid
+1  A: 

For systems where famd can run (Irix, Linux, BSDs, most Unices) there is SGI::FAM and Sys::Gamin, both of which do not build straight out of CPAN or tarball, but do work well once you get them working.

MkV
+6  A: 

File::ChangeNotify sounds like a cross-platform way to do this.

oeuftete
This! File::ChangeNotify is what Catalyst's development server uses to initiate a restart when a file changes. It's got nice, fast file watcher classes for Linux, BSD and Win32 (I recently contributed the KQueue watcher for *BSD :)), and a fallback that polls files for changes. It's pretty heavily used by people working with Catalyst, so I imagine it's pretty stable.
Dan