NAME
Venus::Role::Matchable - Matchable Role
ABSTRACT
Matchable Role for Perl 5
SYNOPSIS
package
Example;
use
Venus::Class;
has
'active'
;
sub
validate {
my
(
$self
) =
@_
;
return
$self
->match->
when
(
'active'
)->then(true)->none(false);
}
package
main;
my
$example
= Example->new;
# $example->validate->result;
# 0
DESCRIPTION
This package modifies the consuming package and provides a mechanism for assembling complex pattern matching operations.
METHODS
This package provides the following methods:
match
match(Str | CodeRef
$method
, Any
@args
) (Match)
The match method returns a Venus::Match object having the match value set to the invocant or the result of a dispatch. This method supports dispatching, i.e. providing a method name and arguments whose return value will be acted on by this method.
Since 0.04
- match example 1
-
package
main;
my
$example
= Example->new;
my
$match
=
$example
->match;
# bless({..., value => bless(..., 'Example')}, 'Venus::Match')
- match example 2
-
package
main;
my
$example
= Example->new;
my
$match
=
$example
->match(
'active'
);
# bless({..., value => undef}, 'Venus::Match')
- match example 3
-
package
main;
my
$example
= Example->new(
active
=> 1);
my
$match
=
$example
->match(
'active'
);
# bless({..., value => 1}, 'Venus::Match')
AUTHORS
Cpanery, cpanery@cpan.org
LICENSE
Copyright (C) 2021, Cpanery
Read the "license" file.