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).
14 lines
359 B
Makefile
14 lines
359 B
Makefile
# $NetBSD: buildlink3.mk,v 1.1.1.1 2011/08/23 08:50:14 abs Exp $
|
|
|
|
BUILDLINK_TREE+= p5-Event
|
|
|
|
.if !defined(P5_EVENT_BUILDLINK3_MK)
|
|
P5_EVENT_BUILDLINK3_MK:=
|
|
|
|
BUILDLINK_API_DEPENDS.p5-Event+= p5-Event>=1.13
|
|
BUILDLINK_PKGSRCDIR.p5-Event?= ../../devel/p5-Event
|
|
|
|
.include "../../lang/perl5/buildlink3.mk"
|
|
.endif # P5_EVENT_BUILDLINK3_MK
|
|
|
|
BUILDLINK_TREE+= -p5-Event
|