FreeBSD Manual Pages
Data::Object::Code(3) User Contributed Perl DocumentationData::Object::Code(3) NAME Data::Object::Code ABSTRACT Code Class for Perl 5 SYNOPSIS package main; use Data::Object::Code; my $code = Data::Object::Code->new(sub { $_[0] + 1 }); DESCRIPTION This package provides methods for manipulating code data. INHERITS This package inherits behaviors from: Data::Object::Kind INTEGRATES This package integrates behaviors from: Data::Object::Role::Dumpable Data::Object::Role::Proxyable Data::Object::Role::Throwable LIBRARIES This package uses type constraints from: Data::Object::Types METHODS This package implements the following methods: call call(Any $arg1) : Any The call method executes and returns the result of the code. call example #1 my $code = Data::Object::Code->new(sub { ($_[0] // 0) + 1 }); $code->call; # 1 call example #2 my $code = Data::Object::Code->new(sub { ($_[0] // 0) + 1 }); $code->call(0); # 1 call example #3 my $code = Data::Object::Code->new(sub { ($_[0] // 0) + 1 }); $code->call(1); # 2 call example #4 my $code = Data::Object::Code->new(sub { ($_[0] // 0) + 1 }); $code->call(2); # 3 compose compose(CodeRef $arg1, Any $arg2) : CodeLike The compose method creates a code reference which executes the first argument (another code reference) using the result from executing the code as it's argument, and returns a code reference which executes the created code reference passing it the remaining arguments when executed. compose example #1 my $code = Data::Object::Code->new(sub { [@_] }); $code->compose($code, 1,2,3); # $code->(4,5,6); # [[1,2,3,4,5,6]] conjoin conjoin(CodeRef $arg1) : CodeLike The conjoin method creates a code reference which execute the code and the argument in a logical AND operation having the code as the lvalue and the argument as the rvalue. conjoin example #1 my $code = Data::Object::Code->new(sub { $_[0] % 2 }); $code = $code->conjoin(sub { 1 }); # $code->(0); # 0 # $code->(1); # 1 # $code->(2); # 0 # $code->(3); # 1 # $code->(4); # 0 curry curry(CodeRef $arg1) : CodeLike The curry method returns a code reference which executes the code passing it the arguments and any additional parameters when executed. curry example #1 my $code = Data::Object::Code->new(sub { [@_] }); $code = $code->curry(1,2,3); # $code->(4,5,6); # [1,2,3,4,5,6] defined defined() : Num The defined method returns true if the object represents a value that meets the criteria for being defined, otherwise it returns false. defined example #1 my $code = Data::Object::Code->new; $code->defined; # 1 disjoin disjoin(CodeRef $arg1) : CodeRef The disjoin method creates a code reference which execute the code and the argument in a logical OR operation having the code as the lvalue and the argument as the rvalue. disjoin example #1 my $code = Data::Object::Code->new(sub { $_[0] % 2 }); $code = $code->disjoin(sub { -1 }); # $code->(0); # -1 # $code->(1); # 1 # $code->(2); # -1 # $code->(3); # 1 # $code->(4); # -1 next next(Any $arg1) : Any The next method is an alias to the call method. The naming is especially useful (i.e. helps with readability) when used with closure-based iterators. next example #1 my $code = Data::Object::Code->new(sub { $_[0] * 2 }); $code->next(72); # 144 rcurry rcurry(Any $arg1) : CodeLike The rcurry method returns a code reference which executes the code passing it the any additional parameters and any arguments when executed. rcurry example #1 my $code = Data::Object::Code->new(sub { [@_] }); $code = $code->rcurry(1,2,3); # $code->(4,5,6); # [4,5,6,1,2,3] AUTHOR Al Newkirk, "awncorp@cpan.org" LICENSE Copyright (C) 2011-2019, Al Newkirk, et al. This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file" <https://github.com/iamalnewkirk/data- object/blob/master/LICENSE>. PROJECT Wiki <https://github.com/iamalnewkirk/data-object/wiki> Project <https://github.com/iamalnewkirk/data-object> Initiatives <https://github.com/iamalnewkirk/data-object/projects> Milestones <https://github.com/iamalnewkirk/data-object/milestones> Contributing <https://github.com/iamalnewkirk/data- object/blob/master/CONTRIBUTE.md> Issues <https://github.com/iamalnewkirk/data-object/issues> perl v5.42.0 2020-04-27 Data::Object::Code(3)
NAME | ABSTRACT | SYNOPSIS | DESCRIPTION | INHERITS | INTEGRATES | LIBRARIES | METHODS | AUTHOR | LICENSE | PROJECT
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=Data::Object::Code&sektion=3&manpath=FreeBSD+15.0-RELEASE+and+Ports.quarterly>
