Changes for version 3.103 - 2026-05-21
- Improvements
- Bug Fixes
- PR #323 Fix list.grep('0') never returns matches (GH #322)
- PR #334 Re-save compiled template to disk when source changes
- PR #337 Escape single quotes in html_filter and HTML.escape [CVE-2026-5090, 2026-05-19]
- PR #338 Assert plugin always throws on defined values (GH #300)
- PR #341 Throw Template::Exception with type 'while' on WHILE loop termination
- PR #342 Add explicit parentheses for operator precedence in Stash.pm
- PR #343 Remove redundant duplicate regex substitution in Plugins.pm
- PR #364 Quote interpolated filename in plugin error regex
- PR #365 Allow iteration of constant references (GH #207)
- PR #374 Fix blank error reported for template exception (GH #373)
- PR #375 Correct hash dereference on array ref in _assign() DEFAULT path
- PR #376 Use file path instead of undef $compiled in _load_compiled error
- PR #394 Throw proper exception for nonexistent methods in Scalar plugin
- Maintenance
- PR #324 Fix missing closing tag in documentation
- PR #328 Grammar/spelling fix ("be thrown")
- PR #329 Document configuration
- PR #330 Typo fixes (dyanamic, relvant)
- PR #335 Add tests for grammar factory
- PR #336 Modernize GitHub Actions CI workflow
- PR #339 Add 127 unit tests for under-tested core modules
- PR #348 Add AI policy document
- PR #357 CI: pre-install XML deps without tests for Template::Plugin::XML CI (GH #356)
- PR #368 Remove stale TT3 promise from FAQ (GH #313)
- PR #369 Migrate Template::Test from manual TAP to Test::Builder (GH #301)
- PR #378 Add SECURITY.md (GH #331)
- PR #397 Add CLAUDE.md with rules for generated files and releases
- Update MANIFEST for current shipping policies
Documentation
Process templates from command line
Process entire directory trees of templates
Frequently Asked Questions about the Template Toolkit
Template Toolkit User Manual
Configuration options
Author and contributor credits
Template directives
Standard filters
Template Toolkit internals
Introduction to the Template Toolkit
Standard plugins
Directive syntax, structure and semantics
Virtual Methods
Template variables and code bindings
Template Toolkit views (experimental)
Template Toolkit Modules
Command Line Tools for the Template Toolkit
Process templates from command line
Process entire directory trees of templates
Template Toolkit Tutorials
Creating Data Output Files Using the Template Toolkit
Generating Web Content Using the Template Toolkit
Modules
Front-end module to the Template Toolkit
Backend of ttree
Base class module implementing common functionality
Factory module for instantiating other TT2 modules
Defines constants for the Template Toolkit
Runtime context in which templates are processed
Perl code generator for template directives
Compiled template document object
Exception handling class module
Post-processing filters for template blocks
Parser state/rule tables for the TT grammar
Data iterator used by the FOREACH directive
Compile time constant folding
LALR(1) parser for compiling template documents
Base class for Template Toolkit plugins
trap undefined values
Plugin to construct records from a simple data file
Plugin to generate formatted date strings
Plugin for generating directory listings
Plugin interface to Data::Dumper
Plugin providing information about files
Base class for plugin filters
Plugin to create formatting functions
Plugin to create HTML elements
Plugin access to image sizes
Plugin to create iterators (Template::Iterator)
Plugin providing mathematical functions
Plugin interface to Pod::POM (Pod Object Model)
Base class for procedural plugins
call object methods in scalar context
Object oriented interface for string manipulation
Plugin to present data in a table
Plugin to construct complex URLs
Plugin to create views (Template::View)
Plugin interface to Text::Wrap
Plugin provider module
Provider module for loading/compiling templates
General purpose template processing service
Magical storage for template variables
Experimetal stash allowing list/scalar context definition
High-speed variable stash written in C
Module for automating TT2 test scripts
Template Processing System
Virtual methods for variables
customised view of a template processing context
Provides
in lib/Template/Plugin/Assert.pm
in lib/Template/Plugin/Scalar.pm
in lib/Template/Filters.pm
in lib/Template/Plugin/Date.pm
in lib/Template/Plugin/Date.pm
in lib/Template/Config.pm