aboutsummaryrefslogtreecommitdiffstats
path: root/devel/p5-Eval-Closure/pkg-descr
blob: a08e85f714c21a809ad62ef40aff5c722a9d473d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
String eval is often used for dynamic code generation. For instance, Moose uses
it heavily, to generate inlined versions of accessors and constructors, which
speeds code up at runtime by a significant amount. String eval is not without
its issues however - it's difficult to control the scope it's used in (which 
determines which variables are in scope inside the eval), and it can be quite
slow, especially if doing a large number of evals.

This module attempts to solve both of those problems. It provides an
eval_closure function, which evals a string in a clean environment, other than
a fixed list of specified variables. It also caches the result of the eval, so
that doing repeated evals of the same source, even with a different
environment, will be much faster (but note that the description is part of the
string to be evaled, so it must also be the same (or non-existent) if caching
is to work properly).

WWW:    http://search.cpan.org/dist/Eval-Closure