Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: Seeking a better way to monitor a file's change

by xbmy (Friar)
on Jun 25, 2010 at 19:12 UTC ( [id://846587]=note: print w/replies, xml ) Need Help??


in reply to Seeking a better way to monitor a file's change

Thanks for your suggestion!

I found the following code can monitor the file's delete, rename or ctreat in one directory, so, when I delete one file, it printed a message "file deleted: ...", but when I made some changes on one of the txt files in that directory and saved it, there was no message printed out, can anyone tell me what was the problem in the following codes? Or, actually the code can't monitor the change in file's size?

Thanks in advance!

#!/usr/bin/perl use strict; use warnings; use Carp; use File::Monitor; $| = 1; my $monitor = File::Monitor->new; push @ARGV, '.' unless @ARGV; while ( my $obj = shift ) { $monitor->watch( { name => $obj, recurse => 1 } ); } my @attr = qw( deleted mtime ctime uid gid mode size files_created files_deleted ); while ( 1 ) { sleep 1; for my $change ( $monitor->scan ) { print $change->name, " changed\n"; for my $attr ( @attr ) { my $val; if ( $attr =~ /^files_/ ) { my @val = $change->$attr; $val = join( ' ', @val ); } else { $val = $change->$attr; } if ( $val ) { printf( "%14s = %s\n", $attr, $val ); } } } }

Replies are listed 'Best First'.
Re^2: Seeking a better way to monitor a file's change
by repellent (Priest) on Jun 26, 2010 at 03:21 UTC
    See File::Monitor::Delta. The module is able to monitor changes to file size.

    A file can change in many ways. What exactly would you consider a file "change"? Perhaps checking the file's modified time mtime is sufficient enough for your needs?

    If you're interested in whether the contents of the file changed, you may want to look at Digest::file.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://846587]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (8)
As of 2024-04-19 09:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found