NAME

Env::C - Get/Set/Unset Environment Variables on the C level

SYNOPSIS

use Env::C;

my $key = "USER";
$val = Env::C::getenv($key) || '';

Env::C::setenv($key, "foobar", [$override]);
$new_val = Env::C::getenv($key) || '';

Env::C::unsetenv($key);

my $ar_env = Env::C::getallenv();
print join "\n", @$ar_env;

DESCRIPTION

This module provides a Perl API for getenv(3), setenv(3) and unsetenv(3). It also can return all the environ variables.

Sometimes Perl invokes modules with underlaying C APIs which rely on certain environment variables to be set, if these variables are set in Perl and the glue code doesn't worry to set them on the C level, these variables might not be seen by the C level. This module shows what really the C level sees.

FUNCTIONS

  • getenv()

    $val = Env::C::getenv($key);

    Returns the value of the environment variable matching the key or undef.

  • setenv()

    Env::C::setenv($key, $value, [$override]);

    The setenv() function adds the variable $key to the environment with the value $value, if $key does not already exist. If $key does exist in the environment, then its value is changed to $value if $overwrite is non-zero; if $overwrite is zero or is not passed, then the value of $key is not changed.

  • unsetenv()

    Env::C::unsetenv($key);

    The unsetenv() function deletes the variable $key from the environment.

  • getallenv()

    my $ar_env = Env::C::getallenv();
    print join "\n", @$ar_env;

    The getallenv() function returns an array reference which includes all the all the environment variables.

EXPORT

None.

AUTHOR

Stas Bekman <stas@stason.org>

SEE ALSO

perl.