# Template::Namespace::Constants - Compile time constant folding - perldoc - [phpMan]

## NAME
    [Template::Namespace::Constants](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3ANamespace%3A%3AConstants/markdown) - Compile time constant folding

## SYNOPSIS
        # easy way to define constants
        use Template;

        my $tt = Template->new({
            CONSTANTS => {
                pi => 3.14,
                e  => 2.718,
            },
        });

        # nitty-gritty, hands-dirty way
        use [Template::Namespace::Constants](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3ANamespace%3A%3AConstants/markdown);

        my $tt = Template->new({
            NAMESPACE => {
                constants => [Template::Namespace::Constants](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3ANamespace%3A%3AConstants/markdown)->new({
                    pi => 3.14,
                    e  => 2.718,
                },
            },
        });

## DESCRIPTION
    The "[Template::Namespace::Constants](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3ANamespace%3A%3AConstants/markdown)" module implements a namespace handler which is plugged into
    the "[Template::Directive](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3ADirective/markdown)" compiler module. This then performs compile time constant folding of
    variables in a particular namespace.

## METHODS
  new(\%constants)
    The new() constructor method creates and returns a reference to a new
    [Template::Namespace::Constants](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3ANamespace%3A%3AConstants/markdown) object. This creates an internal stash to store the constant
    variable definitions passed as arguments.

        my $handler = [Template::Namespace::Constants](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3ANamespace%3A%3AConstants/markdown)->new({
            pi => 3.14,
            e  => 2.718,
        });

  ident(\@ident)
    Method called to resolve a variable identifier into a compiled form. In this case, the method
    fetches the corresponding constant value from its internal stash and returns it.

## AUTHOR
    Andy Wardley <<abw@wardley.org>> <<http://wardley.org/>>

## COPYRIGHT
    Copyright (C) 1996-2007 Andy Wardley. All Rights Reserved.

    This module is free software; you can redistribute it and/or modify it under the same terms as
    Perl itself.

## SEE ALSO
    [Template::Directive](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3ADirective/markdown)

