Template::Plugin::EnvHash - Environment Variable Hash for TT2
[% USE env = EnvHash %] [% env.SOME_ENV_VAR %]
This is a trivial Template::Toolkit plugin to allow any template writer to suck environment variables into their template. I wrote it because i was sick of passing %ENV as one of the contents of the vars hash that i pass to the process method of Template.
I've named this module EnvHash rather than Env because most Template::Plugin::X modules are wrappers around module X. Whereas this is not a wrapper around Perl's Env module. This is because the purpose of that module is to export environment variables into a package. I did not want to export environment variables into my template as environment variables as most environment variables tend to have capitalised names (by popular convention) and this might cause confusion with the tt2 style of using capitalised words for its control structure syntax.
Of course someone else might come along and not care about this, so i leave Template::Plugin::Env free for such a person.
As well as this being a useful module for sucking in standard environment variables it also allows you to configure template via the environment.
Some might say using the environment variables to configure your template is dangerous, and in an uncontrolled environment i would agree. However if you have a controlled environment it can be incredibly useful. Say for example you quickly want to fire your usual apache server, but on a different port (perhaps because u want to test two sets of changes simultaneous, or perhaps just because someone else is using that port). Then using an environment variable to pass the port number can be quick dirty and useful.
Config files are generally better in the long run for most things, but as i say it can be useful in a controlled environment.
This module uses Module::Build for its installation. To install this module type the following:
perl Build.PL ./Build ./Build test ./Build install
If you do not have Module::Build type:
to fetch it. Or use CPAN or CPANPLUS and fetch it "manually".
The curernt implementation simply blesses %ENV. This causes a problem for the environment variable $VERSION as this gets overwritten by the module's own $VERSION. I will change the implementation at some point, but do feel free to email me and hurry me along if this is stopping you from being able to use this module
Environment Variables with names begining with an underscore are not supported.
To report a bug or request an enhancement use CPAN's excellent Request Tracker:
This source is part of a SourceForge project which always has the latest sources in svn.
Sagar R. Shah
Copyright 2003-2007, Sagar R. Shah, All rights reserved
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.