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(Str $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({}, 'Example1')

  # my $result = $example->defer('test', 1..4);

  # $result->();

  # [1..4]
defer example 2
  # given: synopsis

  package main;

  $example = Example->new;

  # bless({}, 'Example1')

  # my $result = $example->defer('test', 1..4);

  # $result->(1..4);

  # [1..4, 1..4]

AUTHORS

Awncorp, awncorp@cpan.org

LICENSE

Copyright (C) 2000, Al Newkirk.

This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.