manpagez: man pages & more
man Tk::Eventloop(3)
Home | html | info | man
Eventloop(3)          User Contributed Perl Documentation         Eventloop(3)




NAME

       Tk::Event - ToolKit for Events


SYNOPSIS

        use Tk::Event;

        Tk::Event->fileevent(\*FH, 'readable' => callback);

        Tk::Event->lineavail(\*FH, callback);

        use Tk::Event::Signal qw(INT);

        $SIG{'INT'} = callback;

        use Tk::Event::process;

        Tk::Event->proc($pid, callback);

        QueueEvent(callback [, position])


DESCRIPTION

       That is better than nothing but still hard to use. Most scripts want
       higher level result (a line, a "block" of data etc.)

       So it has occured to me that we could use new-ish TIEHANDLE thus:

        my $obj = tie SOMEHANDLE,Tk::Event::IO;

        while (<SOMEHANDLE>)
         {
         }

       Then the READLINE routine registers a callback and looks something
       like:

        sub READLINE
         {
          my $obj = shift;
          Event->io(*$obj,'readable',sub { sysread(*$obj,${*$obj},1,length(${*$obj}) });
          my $pos;
          while (($pos = index(${*$obj},$/) < 0)
           {
            DoOneEvent();
           }
          Event->io(*$obj,'readable',''); # unregister
          $pos += length($/);
          my $result = substr(${*$obj},0,$pos);
          substr(${*$obj},0,$pos) = '';
          return $result;
         }

       This is using the scalar part of the glob representing the _inner_ IO
       as a buffer in which to accumulate chars.



perl v5.18.0                      2012-01-16                      Eventloop(3)

perl-Tk 804.030_502 - Generated Tue Aug 13 05:57:58 CDT 2013
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.