template::stash::xs(3)

NAME

Template::Stash::XS - Experimetal high-speed stash written
in XS

SYNOPSIS

use Template;
use Template::Stash::XS;
my $stash = Template::Stash::XS->new(vars);
my $tt2   = Template->new({ STASH => $stash });

DESCRIPTION

This module loads the XS version of Template::Stash::XS.
It should behave very much like the old one, but run about
twice as fast. See the synopsis above for usage informa
tion.

Only a few methods (such as get and set) have been imple
mented in XS. The others are inherited from Tem
plate::Stash.

NOTE

To always use the XS version of Stash, modify the Tem
plate/Config.pm module near line 45:
$STASH = 'Template::Stash::XS';
If you make this change, then there is no need to explic
itly create an instance of Template::Stash::XS as seen in
the SYNOPSIS above. Just use Template as normal.
Alternatively, in your code add this line before creating
a Template object:

$Template::Config::STASH = 'Template::Stash::XS';
To use the original, pure-perl version restore this line
in Template/Config.pm:

$STASH = 'Template::Stash';
Or in your code:

$Template::Config::STASH = 'Template::Stash';
You can elect to have this performed once for you at
installation time by answering 'y' or 'n' to the question
that asks if you want to make the XS Stash the default.

BUGS

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

As of version 2.05 of the Template Toolkit, use of the XS
Stash is known to have 2 potentially troublesome side
effects. The first problem is that accesses to tied
hashes (e.g. Apache::Session) may not work as expected.
This should be fixed in an imminent release. If you are
using tied hashes then it is suggested that you use the
regular Stash by default, or write a thin wrapper around
your tied hashes to enable the XS Stash to access items
via regular method calls.

The second potential problem is that enabling the XS Stash
causes all the Template Toolkit modules to be installed in
an architecture dependant library, e.g. in
/usr/lib/perl5/site_perl/5.6.0/i386-linux/Template
instead of

/usr/lib/perl5/site_perl/5.6.0/Template
At the time of writing, we're not sure why this is happen
ing but it's likely that this is either a bug or inten
tional feature in the Perl ExtUtils::MakeMaker module. As
far as I know, Perl always checks the architecture depen
dant directories before the architecture independant ones.
Therefore, a newer version of the Template Toolkit
installed with the XS Stash enabled should be used by Perl
in preference to any existing version using the regular
stash. However, if you install a future version of the
Template Toolkit with the XS Stash disabled, you may find
that Perl continues to use the older version with XS Stash
enabled in preference.

AUTHORS

Andy Wardley <abw@tt2.org>

Doug Steinwand <dsteinwand@citysearch.com>

VERSION

Template Toolkit version 2.08, released on 30 July 2002.

COPYRIGHT

Copyright (C) 1996-2002 Andy Wardley. All Rights Re
served.
Copyright (C) 1998-2002 Canon Research Centre Europe
Ltd.
This module is free software; you can redistribute it
and/or modify it under the same terms as Perl itself.

SEE ALSO

Template::Stash
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout