1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#!/usr/local/bin/perl -w
use strict;
use Tk::Event;
Tk::Event::HandleSignals;
my $done = 0;
$SIG{'INT'} = sub { print "Interrupt\n"; $done = 1 };
$SIG{'ALRM'} = sub { print "Alarm\n"; alarm(3) };
print "Loaded ",join(' ',sort keys %INC),"\n";
Tk::Event::IO->fileevent(\*STDIN,'readable',\&read_it);
$| = 1;
my $h = Tk::Event::IO->fileevent(\*STDIN,'readable');
print "Callback is $h\n";
alarm(3);
Tk::Event::DoOneEvent(0) while (!$done);
sub read_it
{
my $line = <STDIN>;
if (defined $line)
{
print $line;
}
else
{
$done = 1;
}
}
|