NAME
Venus::Role::Deferrable - Deferrable Role
ABSTRACT
Deferrable Role for Perl 5
SYNOPSIS
package Example;
use Venus::Class;
with 'Venus::Role::Deferrable';
sub test {
my ($self, @args) = @_;
return $self->okay(@args);
}
sub okay {
my ($self, @args) = @_;
return [@args];
}
package main;
my $example = Example->new;
# my $code = $example->defer('test');
# sub {...}
# $code->();
# [...]
DESCRIPTION
This package provides a mechanism for returning callbacks (i.e. closures) that dispatches method calls.
METHODS
This package provides the following methods:
defer
defer(string $method, any @args) (coderef)
The defer method returns the named method as a callback (i.e. closure) which dispatches to the method call specified.
Since 1.80
- defer example 1
-
# given: synopsis package main; $example = Example->new; # bless({}, 'Example') # my $result = $example->defer('test', 1..4); # $result->(); # [1..4]
- defer example 2
-
# given: synopsis package main; $example = Example->new; # bless({}, 'Example') # my $result = $example->defer('test', 1..4); # $result->(1..4); # [1..4, 1..4]
- defer example 3
-
# given: synopsis package main; $example = Example->new; # bless({}, 'Example') # my $result = $example->defer; # $result->(); # bless({}, 'Example')
AUTHORS
Awncorp, awncorp@cpan.org
LICENSE
Copyright (C) 2022, Awncorp, awncorp@cpan.org
.
This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.