NAME
Evo - Evo - the next generation component-oriented development framework
VERSION
version 0.0208
DESCRIPTION
This framework opens new age of perl programming It provides rewritten and postmodern features like
Rewritten sexy Evo::Export
Post modern component oriented programming Evo::Comp instead of 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 fasterEvo::Ee - a component role that gives your component "EventEmitter" abilities
SYNOPSYS
# enables strict, warnings, utf8, :5.22, signatures, postderef
use Evo;
STATE
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
Vim ultisnips with Evo
support can be found here: https://github.com/alexbyk/vim-ultisnips-perl
IMPORTING
Load Module and call itss import
method, emulating caller
.
use Evo 'Evo::SomeComp';
use Evo 'Evo::SomeComp(function)';
use Evo 'Evo::SomeComp(function,otherfunc)';
use Evo 'Evo::SomeComp function1 function2';
Used to make package header shorter
use Evo '-Eval *; My::App';
SHORTCUTS
: => . (append to current)
:: => .. (append to parent)
- => Evo (append to Evo)
shortcuts
Shortcuts are used to make life easier during code refactoring (and your module shorter) in Evo::Export and "with" in Evo::Comp
-
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 it's a sibling module (child of the parent of the current module)
package My::App;
use Evo '::Bar'; # My::Bar
IMPORTS
With or without options, use Evo
loads Evo::Default:
-Default
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
-Loaded
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 My::Inline;
{
package My::Inline;
use Evo -Loaded;
sub foo {'foo'}
}
AUTHOR
alexbyk.com
COPYRIGHT AND LICENSE
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.