use strict; use warnings; use Template; my $config = {}; my $tt = Template->new($config); my $input = "foo.tt"; my $vars = { lang => { de => { "ok" => "Okay", }, en => { "ok" => "Ok", }, }, language => "lang_de", }; $tt->process($input, $vars) or die $tt->error(); __END__ foo.tt: [% code = "ok" %] [% mylang = language.substr(5) %] [% lang.$mylang.$code %]