# Template::Stash::XS - High-speed variable stash written in C - perldoc - [phpMan]

## NAME
    [Template::Stash::XS](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AStash%3A%3AXS/markdown) - High-speed variable stash written in C

## SYNOPSIS
        use Template;
        use [Template::Stash::XS](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AStash%3A%3AXS/markdown);

        my $stash = [Template::Stash::XS](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AStash%3A%3AXS/markdown)->new(\%vars);
        my $tt2   = Template->new({ STASH => $stash });

## DESCRIPTION
    The Template:[Stash::XS](https://www.chedong.com/phpMan.php/perldoc/Stash%3A%3AXS/markdown) module is an implementation of the [Template::Stash](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AStash/markdown) written in C. The "XS"
    in the name refers to Perl's XS extension system for interfacing Perl to C code. It works just
    like the regular Perl implementation of [Template::Stash](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AStash/markdown) but runs about twice as fast.

    The easiest way to use the XS stash is to configure the Template Toolkit to use it by default.
    You can do this at installation time (when you run "perl Makefile.PL") by answering 'y' to the
    questions:

        Do you want to build the XS Stash module?      y
        Do you want to use the XS Stash by default?    y

    See the INSTALL file distributed with the Template Toolkit for further details on installation.

    If you don't elect to use the XS stash by default then you should use the "STASH" configuration
    item when you create a new Template object. This should reference an XS stash object that you
    have created manually.

        use Template;
        use [Template::Stash::XS](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AStash%3A%3AXS/markdown);

        my $stash = [Template::Stash::XS](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AStash%3A%3AXS/markdown)->new(\%vars);
        my $tt2   = Template->new({ STASH => $stash });

    Alternately, you can set the $[Template::Config::STASH](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AConfig%3A%3ASTASH/markdown) package variable like so:

        use Template;
        use [Template::Config](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AConfig/markdown);

        $[Template::Config::STASH](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AConfig%3A%3ASTASH/markdown) = '[Template::Stash::XS](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AStash%3A%3AXS/markdown)';

        my $tt2 = Template->new();

    The XS stash will then be automatically used.

    If you want to use the XS stash by default and don't want to re-install the Template Toolkit,
    then you can manually modify the "Template/Config.pm" module near line 42 to read:

        $STASH = '[Template::Stash::XS](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AStash%3A%3AXS/markdown)';

## BUGS
    Please report bugs to the Template Toolkit mailing list <templates@template-toolkit.org>

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

    Doug Steinwand <<dsteinwand@citysearch.com>>

## COPYRIGHT
    Copyright (C) 1996-2013 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::Stash](https://www.chedong.com/phpMan.php/perldoc/Template%3A%3AStash/markdown)

