Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re: how to permanently monitor a directory

by erasei (Pilgrim)
on Aug 14, 2003 at 13:15 UTC ( #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) ..
if (scalar(@Dircontent) > 2) ..

Comment on Re: how to permanently monitor a directory
Select or Download Code
Replies are listed 'Best First'.
Re: Re: how to permanently monitor a directory
by LanceDeeply (Chaplain) on Aug 14, 2003 at 13:50 UTC
    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


    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?

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (8)
As of 2015-10-07 01:01 GMT
Find Nodes?
    Voting Booth?

    Does Humor Belong in Programming?

    Results (168 votes), past polls