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

FreeBSD Manual Pages


home | help
App::FatPacker::Trace(User Contributed Perl DocumentatApp::FatPacker::Trace(3)

       App::FatPacker::Trace - Tracing module usage using compilation checking

	   # open STDERR for writing
	   # will be like: open	my $fh,	'>', '&STDERR'...
	   perl	-MApp::FatPacker::Trace=>&STDERR

	   # open a file for writing
	   # will be like: open	my $fh,	'>>', 'fatpacker.trace'
	   perl	-MApp::FatPacker::Trace=>>fatpacker.trace

       This module allows tracing the modules being used by your code. It does
       that using clever trickery using	the "import" method, the "CHECK" block
       and B's "minus_c" function.

       When App::FatPacker::Trace is being used, the import() method will call
       "B::minus_c" in order to	set up the global compilation-only flag	perl
       (the interpreter) has. This will	prevent	any other code from being run.

       Then in the "CHECK" block which is reached at the end of	the
       compilation phase (see perlmod),	it will	gather all modules that	have
       been loaded, using %INC,	and will write it to a file or to STDERR,
       determined by parameters	sent to	the "import" method.

       This method gets	run when you just load App::FatPacker::Trace. It will
       note the	current	%INC and will set up the output	to be written to, and
       raise the compilation-only flag,	which will prevent anything from being
       run past	that point. This flag cannot be	unset, so this is most easily
       run from	the command line as such:

	   perl	-MApp::FatPacker::Trace	[...]

       You can control the parameters to the import using an equal sign, as

	   # send the parameter	"hello"
	   perl	-MApp::FatPacker::Trace=hello [...]

	   # send the parameter	">&STDERR"
	   perl	-MApp::FatPacker::Trace=>&STDERR [...]

       The import method accepts a first parameter telling it which output to
       open and	how. These are both sent in a single parameter.

	   # append to mytrace.txt
	   perl	-MApp::FatPacker::Trace=>>mytrace.txt

	   # write to STDERR
	   perl	-MApp::FatPacker::Trace=>&STDERR

       The import method accepts additional parameters of extra	modules	to
       load.  It will then add these modules to	the trace. This	is helpful if
       you want	to explicitly indicate additional modules to trace, even if
       they aren't used	in your	script.	Perhaps	you're conditionally using
       them, perhaps they're for additional features, perhaps they're loaded
       lazily, whatever	the reason.

	   # Add Moo to	the trace, even	if you don't trace it in
	   perl	-MApp::FatPacker::Trace=>&STDERR,Moo

perl v5.32.1			  2015-12-13	      App::FatPacker::Trace(3)


Want to link to this manual page? Use this URL:

home | help