Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Dear Monks,

We are making some changes to our system and one of the objectives was to use POE::Component::DirWatch.
I tried the following code from the internet, modified to my needs.
Main objective of the script is to watch a directory and print the filenames that gets added to that directory

The script is able to watch a specified directory and when a file gets added to the directory the script responds.
One issue I'm facing is that it is not able to print the file names which came into the directory. Instead it prints "" and empty session id.

use warnings; use strict; use POE; use POE::Component::DirWatch; POE::Session->create( inline_states => { _start => \&init_watcher, watch_dir => \&watch_dir, }, ); sub init_watcher { my ($kernel, $heap, $session, $sender) = @_[KERNEL, HEAP, SESSION, +SENDER]; warn "Queue 1 starting (session id " . $session->ID . ")"; # watch a directory for this queue $kernel->yield('watch_dir', '/tmp/queue1'); } sub watch_dir { my ($kernel, $heap, $session, $queue) = @_[KERNEL, HEAP, SESSION, + ARG0]; # start watching the directory POE::Component::DirWatch->new( alias => 'dirwatch', directory => $queue, file_callback => \&found_file, interval => 1, ); } sub found_file { my ($kernel, $heap, $session, $sender, $file) = @_[KERNEL, HEAP, S +ESSION, SENDER, ARG1]; # warn "Found '$file' for " . $session->ID . " (from " . $sender-ID + . ")\n"; warn "Found '$file' for $session->ID\n"; } $poe_kernel->run(); exit(0);
Below is the output of the script without the filename(s) and the session ID.
-bash-3.00$ ./dirwatch_test1.pl Queue 1 starting (session id 2) at ./dirwatch_test1.pl line 19. Found '' for ->ID Found '' for ->ID
Please let me know whats the error. Also let me know if there is a shorter way of doing this.
I'm using verion 0.20000 of POE::Component::DirWatch
Thanks for your help.

In reply to Watching a directory with POE::Component::DirWatch by chanakya

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (1)
As of 2024-04-19 00:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found