.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Template::Stash::XS 3" .TH Template::Stash::XS 3 2023-07-25 "perl v5.38.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME Template::Stash::XS \- High\-speed variable stash written in C .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 2 \& use Template; \& use Template::Stash::XS; \& \& my $stash = Template::Stash::XS\->new(\e%vars); \& my $tt2 = Template\->new({ STASH => $stash }); .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" 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. .PP 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 \f(CW\*(C`perl Makefile.PL\*(C'\fR) by answering 'y' to the questions: .PP .Vb 2 \& Do you want to build the XS Stash module? y \& Do you want to use the XS Stash by default? y .Ve .PP See the \fIINSTALL\fR file distributed with the Template Toolkit for further details on installation. .PP If you don't elect to use the XS stash by default then you should use the \f(CW\*(C`STASH\*(C'\fR configuration item when you create a new Template object. This should reference an XS stash object that you have created manually. .PP .Vb 2 \& use Template; \& use Template::Stash::XS; \& \& my $stash = Template::Stash::XS\->new(\e%vars); \& my $tt2 = Template\->new({ STASH => $stash }); .Ve .PP Alternately, you can set the \f(CW$Template::Config::STASH\fR package variable like so: .PP .Vb 2 \& use Template; \& use Template::Config; \& \& $Template::Config::STASH = \*(AqTemplate::Stash::XS\*(Aq; \& \& my $tt2 = Template\->new(); .Ve .PP The XS stash will then be automatically used. .PP 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 \&\f(CW\*(C`Template/Config.pm\*(C'\fR module near line 42 to read: .PP .Vb 1 \& $STASH = \*(AqTemplate::Stash::XS\*(Aq; .Ve .SH BUGS .IX Header "BUGS" Please report bugs to the Template Toolkit mailing list templates@template\-toolkit.org .SH AUTHORS .IX Header "AUTHORS" Andy Wardley .PP Doug Steinwand .SH COPYRIGHT .IX Header "COPYRIGHT" Copyright (C) 1996\-2022 Andy Wardley. All Rights Reserved. .PP This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .SH "SEE ALSO" .IX Header "SEE ALSO" Template::Stash