use strict;
use threads;
use Thread::Queue;
my $remote_commands= Thread::Queue->new;
my $status= Thread::Queue->new; # responses
sub worker {
$status->enqueue('Connecting to host');
require Net::Telnet;
... connect to host
while (defined(my $cmd= $remote_commands->dequeue)) {
$status->enqueue("Running [$cmd]");
$telnet->print($cmd);
};
};
my $worker= threads->new( \&worker );
...
sub btQuery_Click {
# ... send commands to queue
$remote_commands->enqueue("cd /");
$remote_commands->enqueue("echo 'Hello World'");
...
};
|