Current File : //proc/self/root/usr/share/doc/perl-Template-Toolkit-2.24/modules/Template/Stash/XS.html |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
<html>
<head>
<title>Template::Stash::XS</title>
<link rel="stylesheet" type="text/css" href="../../../css/blue.css" title="Clear Blue">
<link rel="alternate stylesheet" type="text/css" href="../../../css/orange.css" title="Clear Orange">
<link rel="alternate stylesheet" type="text/css" href="../../../css/green.css" title="Clear Green">
<link rel="alternate stylesheet" type="text/css" href="../../../css/purple.css" title="Clear Purple">
<link rel="alternate stylesheet" type="text/css" href="../../../css/grey.css" title="Clear Grey">
<link rel="alternate stylesheet" type="text/css" href="../../../css/print.css" title="Print">
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="../../../css/ie6.css" />
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="../../../css/ie7.css" />
<![endif]-->
<link rel="stylesheet" type="text/css" href="../../../css/print.css" media="print">
<script type="text/javascript" src="../../../js/tt2.js"></script>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta name="author" content="Andy Wardley">
</head>
<body id="body">
<div id="layout">
<div id="header">
<a href="../../../index.html" id="logo" alt="" title="Click for the Home Page"><span class="alt">TT2 Home Page</span></a>
<ul id="trail">
<li><a href="../../../modules/index.html">Modules</a></li>
<li><a href="../../../modules/Template/index.html">Template::*</a></li>
<li><a href="../../../modules/Template/Stash/index.html">Stash::*</a></li>
<li class="last"><a href="../../../modules/Template/Stash/XS.html">XS.pm</a></li>
</ul>
<div class="controls">
<a href="#" class="menu show" onclick="widescreen_off(); return false" title="Show Menu">
<span class="about">Click to view the menu. It's very nice.</span>
</a>
<a href="#" class="menu hide" onclick="widescreen_on(); return false" title="Hide Menu">
<span class="about">Click to hide the menu and go all widescreen!</span>
</a>
<div class="pager">
<a href="../../../modules/Template/Stash/Context.html" title="Template::Stash::Context" class="go back">Back<span class="about"><h4>Template::Stash::Context</h4>Experimetal stash allowing list/scalar context definition</span></a>
<a href="../../../modules/Template/Stash/index.html" title="Template::Stash::* Modules" class="go up">Up<span class="about"><h4>Template::Stash::* Modules</h4></span></a>
<span class="go next">Next<span class="about">You can't go to the next page. Would you like to come foraging for nuts and berries in the forest with me instead?</span></span>
</div>
</div>
<h1 class="headline">Template::Stash::XS</h1>
<h2 class="subhead">High-speed variable stash written in C</h1>
</div>
<div id="page">
<div id="sidebar">
<a href="../../../index.html" id="logo"></a>
<div id="menu">
<ul class="menu">
<li class="l0 first"><a href="../../../manual/index.html">Manual</a></li>
<li class="l0"><a href="../../../modules/index.html" class="warm">Modules</a></li>
<li class="l1"><a href="../../../modules/Template.html">Template.pm</a></li>
<li class="l1"><a href="../../../modules/Template/index.html" class="warm">Template::*</a></li>
<li class="l2"><a href="../../../modules/Template/Base.html">Base.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Config.html">Config.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Constants.html">Constants.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Context.html">Context.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Directive.html">Directive.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Document.html">Document.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Exception.html">Exception.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Filters.html">Filters.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Grammar.html">Grammar.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Iterator.html">Iterator.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Namespace/index.html">Namespace::*</a></li>
<li class="l2"><a href="../../../modules/Template/Parser.html">Parser.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Plugin.html">Plugin.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Plugin/index.html">Plugin::*</a></li>
<li class="l2"><a href="../../../modules/Template/Plugins.html">Plugins.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Provider.html">Provider.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Service.html">Service.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Stash.html">Stash.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Stash/index.html" class="warm">Stash::*</a></li>
<li class="l3"><a href="../../../modules/Template/Stash/Context.html">Context.pm</a></li>
<li class="l3"><a href="../../../modules/Template/Stash/XS.html" class="warm">XS.pm</a></li>
<li class="l2"><a href="../../../modules/Template/Test.html">Test.pm</a></li>
<li class="l2"><a href="../../../modules/Template/VMethods.html">VMethods.pm</a></li>
<li class="l2"><a href="../../../modules/Template/View.html">View.pm</a></li>
<li class="l0"><a href="../../../tools/index.html">Tools</a></li>
<li class="l0"><a href="../../../tutorial/index.html">Tutorial</a></li>
<li class="l0 last"><a href="../../../faq/index.html">FAQ</a></li>
</ul>
<div class="foot"></div>
</div>
</div>
<div id="content">
<div class="section">
<div class="head">
<h1 id="contents" onclick="switch_section(this)" title="Click title to show/hide section content.">Contents</h1>
<a href="#body" class="top" title="Back up to the top of the page" >Top</a>
</div>
<div class="body">
<ul class="toc">
<li class=""><a href="#SYNOPSIS">SYNOPSIS</a></li>
<li class=""><a href="#DESCRIPTION">DESCRIPTION</a></li>
<li class=""><a href="#BUGS">BUGS</a></li>
<li class=""><a href="#AUTHORS">AUTHORS</a></li>
<li class=""><a href="#COPYRIGHT">COPYRIGHT</a></li>
<li class=""><a href="#SEE_ALSO">SEE ALSO</a></li>
</ul>
</div>
</div>
<div class="pod">
<div class="section">
<div class="head">
<h1 id="SYNOPSIS" onclick="switch_section(this)" title="Click title to show/hide section content.">SYNOPSIS</h1>
<a href="#body" class="top" title="Back up to the top of the page" >Top</a>
</div>
<div class="body">
<pre>use Template;
use Template::Stash::XS;
my $stash = Template::Stash::XS->new(\%vars);
my $tt2 = Template->new({ STASH => $stash });</pre>
</div>
</div>
<div class="section">
<div class="head">
<h1 id="DESCRIPTION" onclick="switch_section(this)" title="Click title to show/hide section content.">DESCRIPTION</h1>
<a href="#body" class="top" title="Back up to the top of the page" >Top</a>
</div>
<div class="body">
<p>
The Template:Stash::XS module is an implementation of the Template::Stash
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 but runs about twice as fast.
</p>
<p>
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
<code>perl Makefile.PL</code>) by answering 'y' to the questions:
</p>
<pre>Do you want to build the XS Stash module? y
Do you want to use the XS Stash by default? y</pre>
<p>
See the <i>INSTALL</i> file distributed with the Template Toolkit for
further details on installation.
</p>
<p>
If you don't elect to use the XS stash by default then you should use the
<code>STASH</code> configuration item when you create a new Template
object. This should reference an XS stash object that you have created
manually.
</p>
<pre>use Template;
use Template::Stash::XS;
my $stash = Template::Stash::XS->new(\%vars);
my $tt2 = Template->new({ STASH => $stash });</pre>
<p>
Alternately, you can set the <code>$Template::Config::STASH</code>
package variable like so:
</p>
<pre>use Template;
use Template::Config;
$Template::Config::STASH = 'Template::Stash::XS';
my $tt2 = Template->new();</pre>
<p>
The XS stash will then be automatically used.
</p>
<p>
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
<code>Template/Config.pm</code> module near line 42 to read:
</p>
<pre>$STASH = 'Template::Stash::XS';</pre>
</div>
</div>
<div class="section">
<div class="head">
<h1 id="BUGS" onclick="switch_section(this)" title="Click title to show/hide section content.">BUGS</h1>
<a href="#body" class="top" title="Back up to the top of the page" >Top</a>
</div>
<div class="body">
<p>
Please report bugs to the Template Toolkit mailing list
templates@template-toolkit.org
</p>
</div>
</div>
<div class="section">
<div class="head">
<h1 id="AUTHORS" onclick="switch_section(this)" title="Click title to show/hide section content.">AUTHORS</h1>
<a href="#body" class="top" title="Back up to the top of the page" >Top</a>
</div>
<div class="body">
<p>
Andy Wardley <abw@wardley.org> <a
href="http://wardley.org/">http://wardley.org/</a>
</p>
<p>
Doug Steinwand <dsteinwand@citysearch.com>
</p>
</div>
</div>
<div class="section">
<div class="head">
<h1 id="COPYRIGHT" onclick="switch_section(this)" title="Click title to show/hide section content.">COPYRIGHT</h1>
<a href="#body" class="top" title="Back up to the top of the page" >Top</a>
</div>
<div class="body">
<p>
Copyright (C) 1996-2012 Andy Wardley. All Rights Reserved.
</p>
<p>
This module is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
</p>
</div>
</div>
<div class="section">
<div class="head">
<h1 id="SEE_ALSO" onclick="switch_section(this)" title="Click title to show/hide section content.">SEE ALSO</h1>
<a href="#body" class="top" title="Back up to the top of the page" >Top</a>
</div>
<div class="body">
<p>
<a href="../../../modules/Template/Stash.html">Template::Stash</a>
</p>
</div>
</div>
</div></div>
<br class="clear" />
<div class="pageinfo">
<a href="http://template-toolkit.org/docs/modules/Template/Stash/XS.html">http://template-toolkit.org/docs/modules/Template/Stash/XS.html</a>
</div>
</div>
<div id="footer">
<a href="http://opensource.org/" class="osi"></a>
<div class="controls">
<div class="pager">
<a href="../../../modules/Template/Stash/Context.html" title="Template::Stash::Context" class="go back">Back<span class="about"><h4>Template::Stash::Context</h4></span></a>
<a href="../../../modules/Template/Stash/index.html" title="Template::Stash::* Modules" class="go up">Up<span class="about"><h4>Template::Stash::* Modules</h4></span></a>
<span class="go next">Next<span class="about"></span></span>
</div>
</div>
<div class="copyright">
Copyright © 1996-2012 <a href="http://wardley.org/">Andy Wardley</a>. All Rights Reserved.
</div>
<div class="licence">
The <a href="http://template-toolkit.org/">Template Toolkit</a> is <a href="http://opensource.org/">Open Source</a> software.
You can redistribute and/or modify it under the terms of the <a href="http://www.opensource.org/licenses/gpl-license.php">GNU Public Licence</a>
or the <a href="http://www.opensource.org/licenses/artistic-license.php">Perl Artistic Licence</a>.
</div>
</div>
<div id="palette">
<ul>
<li class="first"><a href="#" class="blue" onclick="set_style('Clear Blue')"></a></li>
<li><a href="#" class="orange" onclick="set_style('Clear Orange')"></a></li>
<li><a href="#" class="green" onclick="set_style('Clear Green')"></a></li>
<li><a href="#" class="purple" onclick="set_style('Clear Purple')"></a></li>
<li><a href="#" class="grey" onclick="set_style('Clear Grey')"></a></li>
</ul>
</div>
</div> </body>
</html>