http://www.perlmonks.org?node_id=872099


in reply to Re: File::Monitor problem with batch files
in thread File::Monitor problem with batch files

Thank you very much! I have setup the win32::readdirectorychangesw module on my hard drive by copying the pm file to the directory of perl. i tried the following code as you told me:

use strict; use warnings; use File::Copy::Recursive qw(fcopy rcopy dircopy fmove rmove dirmove); use Win32::ReadDirectoryChangesW; my $path = 'c:\\PAPER'; my $subtree = 1; my $filter = FILE_ACTION_ADDED | FILE_ACTION_MODIFIED; my $rdc = Win32::ReadDirectoryChangesW->new(path => $path, subtree => 1, filter => $filter); my @results = $rdc->read_changes; while (scalar @results) { my ($action, $filename) = splice(@results, 0, 2); if ($action == FILE_ACTION_ADDED || $action == FILE_ACTION_MODIFIED +) { # perform your backup here fcopy ("$filename","p:\\phdpaper"); } }

But i got a wrong message: Bareword "FILE_ACTION_ADDED" not allowed while "strict subs" in use at C:\PAPER\1.pl line 9. Bareword "FILE_ACTION_MODIFIED" not allowed while "strict subs" in use at C:\PAPER\1.pl line 9. Bareword "FILE_ACTION_ADDED" not allowed while "strict subs" in use at C:\PAPER\1.pl line 21. Bareword "FILE_ACTION_MODIFIED" not allowed while "strict subs" in use at C:\PAPER\1.pl line 21. Execution of C:\PAPER\1.pl aborted due to compilation errors.

Then i delete the "use strict" script, runing...., but still got the following error: Can't locate object method "new" via package "Win32::ReadDirectoryChangesW" (perhaps you forgot to load "Win32::ReadDirectoryChangesW"?) at C:\PAPER\1.pl line 11.

So, can you help me figure out what the problem was? Thanks a lot!