[Bast-commits] r3541 - trunk/Devel-BeginLift
matthewt at dev.catalyst.perl.org
matthewt at dev.catalyst.perl.org
Wed Jun 27 04:48:36 GMT 2007
Author: matthewt
Date: 2007-06-27 04:48:36 +0100 (Wed, 27 Jun 2007)
New Revision: 3541
Added:
trunk/Devel-BeginLift/README
Log:
placeholder readme, overwritten by PREOP
Added: trunk/Devel-BeginLift/README
===================================================================
--- trunk/Devel-BeginLift/README (rev 0)
+++ trunk/Devel-BeginLift/README 2007-06-27 03:48:36 UTC (rev 3541)
@@ -0,0 +1,65 @@
+NAME
+ Devel::BeginLift - make selected sub calls evaluate at compile time
+
+SYNOPSIS
+ use Devel::BeginLift qw(foo baz);
+
+ use vars qw($i);
+
+ BEGIN { $i = 0 }
+
+ sub foo { "foo: $_[0]\n"; }
+
+ sub bar { "bar: $_[0]\n"; }
+
+ for (1 .. 3) {
+ print foo($i++);
+ print bar($i++);
+ }
+
+ no Devel::BeginLift;
+
+ print foo($i++);
+
+ outputs -
+
+ foo: 0 bar: 1 foo: 0 bar: 2 foo: 0 bar: 3 foo: 4
+
+DESCRIPTION
+ Devel::BeginLift 'lifts' arbitrary sub calls to running at compile time
+ - sort of a souped up version of "use constant". It does this via some
+ slightly insane perlguts magic.
+
+ import
+ use Devel::BeginLift qw(list of subs);
+
+ Calls Devel::BeginLift->setup_for(__PACKAGE__ => \@list_of_subs);
+
+ unimport
+ no Devel::BeginLift;
+
+ Calls Devel::BeginLift->teardown_for(__PACKAGE__);
+
+ setup_for
+ Devel::BeginLift->setup_for($package => \@subnames);
+
+ Installs begin lifting magic (unless already installed) and registers
+ "${package}::$name" for each member of @subnames to be executed when
+ parsed and replaced with its output rather than left for runtime.
+
+ teardown_for
+ Devel::BeginLift->teardown_for($package);
+
+ Deregisters all subs currently registered for $package and uninstalls
+ begin lifting magic is number of teardown_for calls matches number of
+ setup_for calls.
+
+AUTHOR
+ Matt S Trout - <mst at shadowcatsystems.co.uk>
+
+ Company: http://www.shadowcatsystems.co.uk/ Blog:
+ http://chainsawblues.vox.com/
+
+LICENSE
+ This library is free software under the same terms as perl itself
+
More information about the Bast-commits
mailing list