CPS::Governor man page on Alpinelinux

Man page or keyword search:  
man Server   18016 pages
apropos Keyword Search (all sections)
Output format
Alpinelinux logo
[printable version]

CPS::Governor(3)      User Contributed Perl Documentation     CPS::Governor(3)

NAME
       "CPS::Governor" - control the iteration of the "CPS" functions

DESCRIPTION
       Objects based on this abstract class are used by the "gk*" variants of
       the CPS functions, to control their behavior. These objects are
       expected to provide a method, "again", which the functions will use to
       re-invoke iterations of loops, and so on. By providing a different
       implementation of this method, governor objects can provide such
       behaviours as rate-limiting, asynchronisation or parallelism, and
       integration with event-based IO frameworks.

CONSTRUCTOR
   $gov = CPS::Governor->new
       Must be called on a subclass which implements the "again" method.
       Returns a new instance of a governor object in that class.

SUBCLASS METHODS
       Because this is an abstract class, instances of it can only be
       constructed on a subclass which implements the following methods:

   $gov->again( $code, @args )
       Execute the function given in the "CODE" reference $code, passing in
       the arguments @args. If this is going to be executed immediately, it
       should be invoked using a tail-call directly by the "again" method, so
       that the stack does not grow arbitrarily. This can be achieved by, for
       example:

	@_ = @args;
	goto &$code;

       Alternatively, the Sub::Call::Tail may be used to apply syntactic
       sugar, allowing you to write instead:

	use Sub::Call::Tail;
	...
	tail $code->( @args );

EXAMPLES
   A Governor With A Time Delay
       Consider the following subclass, which implements a "CPS::Governor"
       subclass that calls "sleep()" between every invocation.

	package Governor::Sleep

	use base qw( CPS::Governor );

	sub new
	{
	   my $class = shift;
	   my ( $delay ) = @_;

	   my $self = $class->SUPER::new;
	   $self->{delay} = $delay;

	   return $self;
	}

	sub again
	{
	   my $self = shift;
	   my $code = shift;

	   sleep $self->{delay};

	   # @args are still in @_
	   goto &$code;
	}

SEE ALSO
       ยท   Sub::Call::Tail - Tail calls for subroutines and methods

AUTHOR
       Paul Evans <leonerd@leonerd.org.uk>

perl v5.18.2			  2014-05-14		      CPS::Governor(3)
[top]

List of man pages available for Alpinelinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net