logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Env::Sanctify - Lexically scoped sanctification of %ENV

Author

       Chris Williams <chris@bingosnet.co.uk>

Caveats

       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

Constructor

       "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.

Description

       Env::Sanctify is a module that provides lexically scoped manipulation and sanctification of %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.

       Useful for manipulating the environment that forked processes and sub-processes will inherit.

Methods

       "restore"
           Explicitly  restore  the  previous %ENV. This is called automagically when the object is "DESTROY"ed,
           for instance, when it goes out of scope.

Name

       Env::Sanctify - Lexically scoped sanctification of %ENV

Synopsis

         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

Version

       version 1.12

See Also