[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