use strict; use warnings; use Data::Dumper; use POE; # This should be added to the docs... use POE::Component::RemoteTail; my ( $host, $path, $user ) = (qw(myhost.domain.com /home/mylogin/.profile mylogin)); my $alias = 'Remote_Tail'; # spawn component my $tailer = POE::Component::RemoteTail->spawn( alias=>$alias ); # create job my $job = $tailer->job( host=>$host, path=>$path, user=>$user, ); # prepare the postback subroutine at main POE session POE::Session->create( inline_states=>{ _start=>sub { my ( $kernel, $session ) = @_[ KERNEL, SESSION ]; # create postback my $postback = $session->postback("MyPostback"); # post to execute $kernel->post( $alias, "start_tail"=>{ job=>$job, postback=>$postback } ); }, # return to here MyPostback=>sub { my ( $kernel, $session, $data ) = @_[ KERNEL, SESSION, ARG1 ]; print STDERR "DATA DUMP:\n", Dumper($data), "\n"; }, }, ); POE::Kernel->run();