Things to do: * Use native file monitoring interface on platforms where it's available. * Implement a "don't scan more frequently that every X seconds" functionality. * Directory scanning is hideously inefficient. For directories with the 'files' flag set we only need to rescan the directory if stat shows that it has been modified. * Investigate whether changes to the monitored directory are reported correctly under Windows. * Implement more efficient polling in the degenerate case where you only want to know if any of the monitored files has changed. That's tricky because the current interface assumes that all the File::Monitor::Objects are updated after each call to scan().