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.

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: