Evo - Evo - the next generation development framework
version 0.0213
This framework opens new age of perl programming It provides rewritten and postmodern features like
Rewritten sexy Evo::Export
Post modern code injection programming Evo::Class instead of traditional OO
(no docs yet) Fast Event-Loop Evo::Loop with unique feature zones (Not ready)
Fast non recursive Evo::Promise, 100% "Promise/Spec A" compatible. + Nice syntax via experimental Evo::Prm
Exception handling in pure perl: Evo::Eval, "try catch" alternative. Like Try::Tiny, but without its bugs and much faster
Try::Tiny
Evo::Ee - a class role that gives your "EventEmitter" abilities
# enables strict, warnings, utf8, :5.22, signatures, postderef use Evo;
This module is under active development. It changes often and a lot! Don't use in production. Get involved https://github.com/alexbyk/perl-evo
Vim ultisnips with Evo support can be found here: https://github.com/alexbyk/vim-ultisnips-perl
Evo
Load Module and call itss import method, emulating caller.
import
caller
use Evo 'Evo::SomeClass'; use Evo 'Evo::SomeClass(function)'; use Evo 'Evo::SomeClass(function,otherfunc)'; use Evo 'Evo::SomeClass function1 function2';
Used to make package header shorter
use Evo '-Eval *; My::App';
:: => (append to current) /:: => (append to parent) - => Evo (append to Evo)
Shortcuts are used to make life easier during code refactoring (and your module shorter) in Evo::Export and "with" in Evo::Class
- is replaced by Evo
-
use Evo '-Promise promise'; # "Evo::Promise promise"
: and :: depend on the package name where they're used
:
::
:: means relative to the current module as a child
package My::App; use Evo '::Bar'; # My::App::Bar
/ means parent and /:: means it's a sibling module (child of the parent of the current module)
/
/::
package My::App; use Evo '/::Bar'; # My::Bar
With or without options, use Evo loads Evo::Default:
use Evo
use strict; use warnings; use feature ':5.22'; use experimental 'signatures'; use feature 'postderef';
I have decided that using 5.22 and some of the experimental features it brings has many benefits and is worth it. This list will be expanded in the future, I hope
This marks inline or generated classes as loaded, so can be used with require or use. So this code won't die. Used for test and examples in the documentation
require
use
require My::Inline; { package My::Inline; use Evo -Loaded; sub foo {'foo'} }
alexbyk.com
This software is copyright (c) 2016 by alexbyk.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Evo, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Evo
CPAN shell
perl -MCPAN -e shell install Evo
For more information on module installation, please visit the detailed CPAN module installation guide.