The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.