Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Devel::BeginLift(3)   User Contributed Perl Documentation  Devel::BeginLift(3)

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.

   setup_for_cv
	 $id = Devel::BeginLift->setup_for_cv(\&code);

       Same as "setup_for", but	only registers begin lifting magic for one
       code reference. Returns an id to	be used	in "teardown_for_cv".

   teardown_for_cv
	 Devel::BeginLift->teardown_for_cv($id);

       Deregisters begin lifting magic referred	to by $id.

AUTHOR
       Matt S Trout - <mst@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

perl v5.32.0			  2010-05-11		   Devel::BeginLift(3)

NAME | SYNOPSIS | DESCRIPTION | AUTHOR | LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Devel::BeginLift&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help