Unix/Linux Go Back    


SuSE 11.3 - man page for tk::eventloop (suse section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


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.12.1				    2007-05-05				     Eventloop(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 01:30 PM.