Хочу использовать в перловом скрипте poll, обрабатывать изменения в потоках и перехватывать Ctrl+C. Допустим, это выглядит так:
#!/usr/bin/perl -w
use strict;
use IO::Poll;
use IO::File;
use threads;
$SIG{'INT'} = sub { print "Bye\n"; exit(0); };
my $f = new IO::File("/dev/urandom", "r");
my $p = new IO::Poll;
$p->mask($f => POLLIN);
while (1) {
$p->poll(1000);
my @h = $p->handles(POLLIN);
foreach (@h) {
threads->create(\&myread, $_)->detach();
}
}
sub myread
{
my $f = shift;
getc $f;
}