NAME
    Env::Sanctify - Lexically scoped sanctification of %ENV

VERSION
    version 1.10

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

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.

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.

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.

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

AUTHOR
    Chris Williams <chris@bingosnet.co.uk>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2013 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.

