Venus::Role::Proxyable - Proxyable Role
Proxyable Role for Perl 5
package Example; use Venus::Class; with 'Venus::Role::Proxyable'; attr 'test'; sub build_proxy { my ($self, $package, $method, @args) = @_; return sub { [$self, $package, $method, @args] } if $method eq 'anything'; return undef; } package main; my $example = Example->new(test => time); # $example->anything(1..4);
This package provides a hook into method dispatch resoluton via a wrapper around the AUTOLOAD routine which processes calls to routines which don't exist.
AUTOLOAD
This package provides the following methods:
build_proxy(string $package, string $method, any @args) (coderef | undef)
The build_proxy method should return a code reference to fulfill the method dispatching request, or undef to result in a method not found error.
Since 0.01
0.01
package main; my $example = Example->new(test => 123); my $build_proxy = $example->build_proxy('Example', 'everything', 1..4); # undef
package main; my $example = Example->new(test => 123); my $build_proxy = $example->build_proxy('Example', 'anything', 1..4); # sub { ... }
Awncorp, awncorp@cpan.org
awncorp@cpan.org
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.
To install Venus, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Venus
CPAN shell
perl -MCPAN -e shell install Venus
For more information on module installation, please visit the detailed CPAN module installation guide.