File: event_demo

package info (click to toggle)
perl-tk 1%3A804.036%2Bdfsg1-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 35,284 kB
  • sloc: ansic: 349,560; perl: 52,292; sh: 12,678; makefile: 5,700; asm: 3,565; ada: 1,681; pascal: 1,082; cpp: 1,006; yacc: 883; cs: 879
file content (37 lines) | stat: -rwxr-xr-x 559 bytes parent folder | download | duplicates (10)
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;
  }
}