Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Perl module to export environment variables as constant subs

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 etc
Octocat-spinner-32 lib
Octocat-spinner-32 t
Octocat-spinner-32 xt
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Build.PL
Octocat-spinner-32 ChangeLog.xml
Octocat-spinner-32 MANIFEST.SKIP
Octocat-spinner-32 README.textile

Env::Export – Export environment variables as constant subroutines

Version: 0.22


This module allows the user to specify one or more environment variables that
should be “exported” to the calling namespace as constant subroutines. By
doing this, their existence/inexistence can be detected at compile-time.

USING Env::Export

The difference is in how you detect the absence of the environment variable
you need:

    if (exists($ENV{PATH}) and ($ENV{PATH} =~ /.../))
        # Do something


    use Env::Export 'PATH';

    if (PATH =~ /.../)
        # Do something

The first form performs two tests, the first to ensure that the second does
not cause a “Use of unitialized value in regular expression” warning. The
second form only performs one test, but it also generates a compile-time
error if there was no environment variable “PATH” present.


This package provides a Makefile.PL file as is typical of CPAN modules.
Building and installing is as easy as:

        perl Makefile.PL
        make test
        # If tests pass
        make install

(The “make install” step may require super-user privileges.)


Problems, bug reports, or suggestions for enhancements can be sent to the RT
instance set up for all CPAN-based distributions:


  • t/00_load.t (deleted)
  • t/01_pod.t (deleted)
  • t/02_pod_coverage.t (deleted)
  • xt/00_load.t
  • xt/01_pod.t
  • xt/02_pod_coverage.t

Move author-only tests to the xt/ directory.

  • t/20_regex.t
  • t/25_glob.t
  • t/40_all.t

Consider volume when creating path to

  • t/10_basic.t
  • t/80_split.t

Additions to increase code-coverage of tests.

  • lib/Env/

Bug fixes, critic clean-up and some docs clean-up. Some fixes related to getting better code-coverage in test suites.

  • lib/Env/

Removed a left-over debugging line, doc fixes.

Something went wrong with that request. Please try again.