App::Env::Example - example application environment module for App::Env.


version 1.01


Modules used by App::Env to load application environments are named


or, if there is a site specific version:


It is very important that the loaded environment be based upon the current environment. For example, if the environment is derived from running a shell script, make sure either that the shell script is run without running the user's startup file, or that any differences between the current environment and that constructed by the script which are not due to the application are resolved in the current environment's favor. For example, say that LD_LIBRARY_PATH is set in the user's .cshrc file:

  setenv LD_LIBRARY_PATH /my/path1

and that before invoking App::Env the user has modified it to


If a csh script is sourced to create the environment, and csh is not run with the -f flag, the user's .cshrc will be sourced, the user's modifications to LD_LIBRARY_PATH will be lost, and breakage may happen.

With that said, it may be necessary in some cases to provide an environment which is independent of the current one. If a module is capable of doing so, it should do so when presented with the Pristine AppOpts option. If it is not capable of doing so the presence of that option should be treated as an error. Pristine environments will by definition cause problems in merged environments.

Application Aliases

If application environments should be available under alternate names (primarily for use appexec), a module should be created for each alias with the single class method alias which should return the name of the original application. For example, to make App3 be an alias for App1 create the following module:

  package App::Env::App3;
  sub alias { return 'App1' };

The aliased environment can provide presets for AppOpts by returning a hash as well as the application name:

  package App::Env::ciao34;
  sub alias { return 'CIAO', { Version => 3.4 } };

These will be merged with any AppOpts passed in via import(), with the latter taking precedence.


They should define the following functions:

  $hashref = envs( \%opts );

$hashref is a hash containing environmental variables and their values. %opts will contain the options passed to App::Env::import via the AppOpts option.

See the source of this module for a simple example.



Please report any bugs or feature requests to or through the web interface at:


Source is available at

and may be cloned from


Please see those modules/websites for more information related to this module.


Diab Jerius <>


This software is Copyright (c) 2018 by Smithsonian Astrophysical Observatory.

This is free software, licensed under:

  The GNU General Public License, Version 3, June 2007