Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: how to permanently monitor a directory

by erasei (Pilgrim)
on Aug 14, 2003 at 13:15 UTC ( [id://283857]=note: print w/replies, xml ) Need Help??


in reply to how to permanently monitor a directory

Well, like all things Perl, TISMTOWTDI.

If you know what the files will be (example, they are uploaded by a script so the filename will always be the same) you could do something like:

while (1) { if (-e "/my/dir/filename.dat") { do_something_now(); } }
If not, you could use your own code. I'm not sure I'd have it 'sleep' though. Run it from cron every so often would make more sense to me. Also, you can drop a couple of lines by changing
my $items_in_dir = @Dircontent; if ($items_in_dir > 2) ..
to
if (scalar(@Dircontent) > 2) ..

Replies are listed 'Best First'.
Re: Re: how to permanently monitor a directory
by LanceDeeply (Chaplain) on Aug 14, 2003 at 13:50 UTC
    This:
    my $items_in_dir = @Dircontent; if ($items_in_dir > 2) ..
    won't work if some smart alec decides to create a subdir in your drop area. try using -f

    TISMTOWTDI:

    use strict; use warnings; sub scandir { my $dir = shift; my $fileProcessor = shift; opendir (DIR, $dir) or die "Cannot open $dir: $!\n"; for (readdir DIR) { if ( -f ) { &$fileProcessor($_); } } close DIR; } sub do_something { my $filename = shift; print "got file: $filename\n"; } sub do_something_else { my $filename = shift; print "got another file: $filename\n"; } scandir('.',\&do_something); scandir('.',\&do_something_else);

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2024-04-24 05:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found