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

FreeBSD Manual Pages


home | help
PAR::Environment(3)   User Contributed Perl Documentation  PAR::Environment(3)

       PAR::Environment	- Index	and reference of PAR environment variables

       PAR uses	various	environment variables both during the building process
       of executables or PAR archives and the use of them. Since the wealth of
       combinations and	settings might confuse one or the other	(like me),
       this document is	intended to document all environment variables which
       PAR uses.

       Wherever	I want to refer	to the $ENV{FOO} environment hash entry, I
       will usually talk about the "FOO" variable for brevity.

       Please note that	this is	still very, very incomplete! Contributions

       For each	variable, there	should be a description	what it	contains, when
       it can be expected to exist (and	contain	meaningful information), when
       it is sensible to define	it yourself, and what effect this has.

       Of course, the description may use examples.

       If the running program is run from within a PAR archive or pp-produced
       executable, this	variable contains the name of the extracted program
       (i.e. .pl file).	This is	useful of you want to open the source code
       file of the running program.

       For example, if you package a file into bar.par and run
       with this command	foo.par

       then the	"PAR_0"	variable will contain something	like
       where "youser" is your username and
       "/tmp/par-youser/cache-b175f53eb731da9594e0dde337d66013ddf25a44/" is
       the PAR cache directory ("PAR_TEMP").

       The name	of the PAR cache directory can take a number of	different
       forms, so use "PAR_0" if	you want to find the extracted program's .pl
       file -- attempting to construct the name	yourself requires complex
       logic that has already produced the value in "PAR_0".

       This works the same for executable binaries (.exe, ...).

       If you are looking for the name and path	of the pp-ed binary file,
       please refer to the "PAR_PROGNAME" variable.

       Users should set	"PAR_GLOBAL_CLEAN" instead.

       Recreated from "PAR_GLOBAL_CLEAN" and the value of "-C" from the	YAML
       file by the PAR loader, and used	within loader to control the initial
       behavior	of extraction, and the final behavior of cleanup.  The user
       can reference "PAR_CLEAN" in the	application to determine which of
       these behaviors is being	used for this run of the application.

       Users should set	"PAR_GLOBAL_DEBUG" instead.

       If this variable	is set to a true value and is run, verbose
       output is sent to STDOUT	or the logging filehandle.  This is overridden
       by the "-q" option to, for steps after argument parsing occurs.

       This currently only influences Whether this is the intended
       behaviour remains to be verified.

       Setting "PAR_GLOBAL_CLEAN" alters the behavior of par applications
       which see that environment variable at launch.  "PAR_GLOBAL_CLEAN"
       overrides the "-C" option.  Settings of 0 and 1 are supported.  0
       corresponds to not using	"-C" on	the pp command line; 1 corresponds to
       using "-C" on the pp command line.  "PAR_GLOBAL_CLEAN" is ignored if
       "PAR_GLOBAL_TEMP" is set, yet it	controls the form of "PAR_TEMP"	when
       "PAR_GLOBAL_TEMP" is not	set.

       The PAR loader becomes more verbose when	"PAR_DEBUG" is set.  Setting
       "PAR_GLOBAL_DEBUG" guarantees that "PAR_DEBUG" will be set internally,
       initially.  See "PAR_DEBUG" for more details.

       Contributes to the calculation of "PAR_TEMP", and is further explained

       Contributes to the calculation of "PAR_TEMP", and is further explained

       This environment	variable is for	internal use by	the PAR	binary loader
       only.  Documented only to avoid surprises if spawned applications
       expect to see a value initialized by the	user.

       "PAR_PROGNAME" is set to	the fully-qualified path name of the
       executable program.  On Windows,	this is	reliably obtained from the
       "GetModuleFileName" API.	 On other OSes,	if the C runtime is given a
       qualified path name, it is used,	or the unqualified file	name given is
       qualified by walking the	path.  This is reasonably reliable given
       normal program spawning conventions, but	cannot be guaranteed to	be
       correct in all circumstances.

       Strictly	internal. Skip this section if you're not a PAR	developer.

       The variable shouldn't ever be exposed to user code and packaged
       applications should not depend on it being set or not.

       If an application has been packaged with	the "--reusable" option, the
       bootstrapping code will set this	environment variable to	the name of
       the program that	is to be run instead of	the packaged program.  The loader script fetches the file name, deletes the	environment
       variable, and then runs the given program.

       This environment	variable was set during	constructions of "PAR::Packer"
       objects (usually	during pp runs only) by	versions of PAR	up to 0.957.
       Since PAR 0.958,	this variable is unused.

       This variable is	used internally	by the parl binary loader to signal
       the child process that it's the child.

       You should not rely on this variable outside of the PAR binary loader
       code. For a slightly more detailed discussion, please refer to the
       who_am_i.txt documentation file in the PAR source distribution which
       was contributed by Alan Stewart.

       Documented only to avoid	surprises if spawned applications expect to
       see a value initialized by the user.

       Users should set	"PAR_GLOBAL_TEMP" instead.  "PAR_TEMP" is calculated
       from a variety of other variables.  See the "NOTES" section in the pod
       for for a	complete description of	how the	calculation proceeds.
       "PAR_TEMP", once	calculated, is used as the location where PAR stores
       its extracted, temporary	file cache.

       Contributes to the calculation of "PAR_TEMP", and is further explained
       there.  Users should set	"PAR_GLOBAL_TMPDIR" instead.

       The "PAR_VERBATIM" variable controls the	way Perl code is packaged into
       a PAR archive or	binary executable. If it is set	to a true value	during
       the packaging process, modules (and scripts) are	not passed through the
       default "PAR::Filter::PodStrip" filter which removes all	POD
       documentation from the code. Note that the "PAR::Filter::PatchContent"
       filter is still applied.

       The "-F"	option to the pp tool overrides	the "PAR_VERBATIM" setting.
       That means if you set "PAR_VERBATIM=1" but specify "-F PodStrip"	on the
       "pp" command line, the "PodStrip" filter	will be	applied.

       "PAR_VERBATIM" is not used by the PAR application.

       Setting this environment	variable to a positive integer has the same
       effect as using the "-verbose" switch to	pp.

       During a	pp run,	the contents of	the "PP_OPTS" variable are treated as
       if they were part of the	command	line. In newer versions	of PAR,	you
       can also	write options to a file	and execute pp as follows to read the
       options from the	file:


       That can, of course, be combined	with other command line	arguments to
       pp or the "PP_OPTS" variable.

       Please refer to "PAR_TMPDIR".

       PAR, PAR::Tutorial, PAR::FAQ, parl, pp

       PAR::Dist for details on	PAR distributions.

       Steffen Mueller <>

       You can write to	the mailing list at <>, or send an empty
       mail to <>	to participate in the discussion.

       Please submit bug reports to <>. If you need
       support,	however, joining the <> mailing list is preferred.

       PAR: Copyright 2003-2010	by Audrey Tang,	<>.

       This document: Copyright	2006-2010 by Steffen Mueller,

       Some information	has been taken from Alan Stewart's extra documentation
       in the contrib/ folder of the PAR distribution.

       This program or documentation is	free software; you can redistribute it
       and/or modify it	under the same terms as	Perl itself.

       See LICENSE.

perl v5.32.1			  2018-09-12		   PAR::Environment(3)


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

home | help