The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Evo - Perl Evo design pattern

VERSION

version 0.0172

DESCRIPTION

Tiny framework for organization non-trivial code into a simple logic. It includes benefits from functional and OO styles.

Write fast, reusable and testable code.

ATTENTION

Attention. Don't use it right now. Wait for the stable release. Documentation is on it's way.

IMPORTING Calls loads Evo::Eval and calls it's 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';

SHORTCUTS

  : => . (append to current)
  :: => .. (append to parent)
  - => Evo (append to Evo)

Import Evo::SomeComp namespace

  use Evo '-SomeComp';

Import My::Ns::Foo::Rel:

  package My::Ns::Foo;
  use Evo ':Bar';

Import My::Ns::Bar:

  package My::Ns::Foo;
  use Evo '::Bar';

You can split import by ;

  package My::Ns::Foo;
  use Evo ':Bar bar1; :Baz baz1; Other::Foo foo1';

IMPORTS

With or without options, use Evo loads Evo::Default:

-Default

  use strict;
  use warnings;
  use feature ':5.20';

-Modern

Enable cool experimental features from Evo::Modern

-Loaded

This marks inline or generated classes as loaded, so can be used with require or use. So this code won't die

  require My::Inline;

  {
    package My::Inline;
    use Evo -Loaded;
    sub foo {'foo'}
  }

AUTHOR

alexbyk.com

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 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.