ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/eg/handle
Revision: 1.3
Committed: Sat May 24 23:34:28 2008 UTC (16 years, 1 month ago) by root
Branch: MAIN
CVS Tags: rel-4_151, rel-4_152, rel-4_91, rel-4_04, rel-4_23, rel-4_21, rel-4_412, rel-4_81, rel-4_83, rel-4_82, rel-4_86, rel-4_352, rel-4_351, rel-4_14, rel-4_15, rel-4_13, rel-0_85, rel-4_331, rel-4_231, rel-4_233, rel-4_232, rel-4_8, rel-4_234, rel-4_4, rel-4_05, rel-4_12, rel-4_11, rel-4_22, rel-4_161, rel-4_160, rel-4_881, rel-4_411, rel-4_9, rel-4_45, rel-4_41, rel-4_42, rel-4_1, rel-4_2, rel-4_88, rel-4_3, rel-4_31, rel-4_32, rel-4_33, rel-4_34, rel-4_35, rel-4_03
Changes since 1.2: +2 -1 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 elmex 1.1 #!/opt/bin/perl
2 root 1.3
3 elmex 1.1 # This small example script shows how to do non-blocking
4     # reads from a file handle.
5    
6     use AnyEvent::Handle;
7     my $cv = AnyEvent->condvar;
8    
9     my $ae_fh =
10     AnyEvent::Handle->new (
11     fh => \*STDIN,
12     on_eof => sub { $cv->broadcast }
13     );
14    
15 root 1.3 $ae_fh->push_read (line => sub {
16 elmex 1.1 my ($ae_fh, $line) = @_;
17     print "Got line [$line]\n";
18    
19     $ae_fh->push_read (sub {
20     my ($ae_fh) = @_;
21     print "Got additional data:[\n".$ae_fh->rbuf."]\n";
22    
23     if ($ae_fh->rbuf =~ s/^.*\bend\b//s) {
24     print "'end' detected, stopping program\n";
25     $cv->broadcast;
26     return 1;
27     }
28    
29     return 0;
30     });
31     });
32    
33     $cv->wait;