Env::Sanctify - Lexically scoped sanctification of %ENV
version 1.12
my $sanctify = Env::Sanctify->sanctify( sanctify => [ '^POE' ] ); # do some stuff, fork some processes etc. $sanctify->restore { my $sanctify = Env::Sanctify->sanctify( env => { POE_TRACE_DEFAULT => 1 } ); # do some stuff, fork some processes etc. } # out of scope, %ENV is back to normal
Env::Sanctify is a module that provides lexically scoped manipulation and sanctification of %ENV.
%ENV
You can specify that it alter or add additional environment variables or remove existing ones according to a list of matching regexen.
You can then either restore the environment back manually or let the object fall out of scope, which automagically restores.
restore
Useful for manipulating the environment that forked processes and sub-processes will inherit.
sanctify
Creates an Env::Sanctify object. Takes two optional arguments:
'env', a hashref of env vars to add to %ENV; 'sanctify', an arrayref of regex pattern strings to match against current %ENV vars;
Any %ENV var that matches a sanctify regex is removed from the resultant %ENV.
Explicitly restore the previous %ENV. This is called automagically when the object is DESTROYed, for instance, when it goes out of scope.
DESTROY
It has been reported that redefining the Env::Sanctify object causes unexpected behaviour.
use strict; use warnings; use Env::Sanctify; $ENV{TEST} = 'Test thing'; my $sanctify = Env::Sanctify->sanctify( sanctify => [ 'TEST' ] ); printf "My ENV{TEST}: %s\n", $ENV{TEST}; $sanctify = Env::Sanctify->sanctify( env => { TEST => 'Other answer' } ); printf "My ENV{TEST}: %s\n", $ENV{TEST};
This script outputs:
My ENV{TEST}: My ENV{TEST}: Test thing
Chris Williams <chris@bingosnet.co.uk>
This software is copyright (c) 2014 by Chris Williams.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Env::Sanctify, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Env::Sanctify
CPAN shell
perl -MCPAN -e shell install Env::Sanctify
For more information on module installation, please visit the detailed CPAN module installation guide.