Wenn ich Text verwenden :: Xslate Template-Engine und sammeln Daten, die auf die Vorlage in Perl-Skript geliefert wird, funktioniert alles einwandfrei und wie erwartet:Zuordnung innerhalb Text :: Xslate Vorlage TTerse Syntax
my %vars = (
some => {
nested => {
thing => 'foobar',
},
},
);
# template.tx contains [% some.nested.thing %]
my $content = $tx->render('template.tx', \%vars);
Wie erwartet, wurde [% some.nested.thing %]
durch "foobar" ersetzt. Wenn ich zuweisen auf diese Weise innerhalb Vorlage:
[% some_nested_thing = 'foobar' %]
alles in Ordnung, gut funktioniert. Aber, wenn ich versuche, auf diese Weise zu vergeben:
[% some.nested.thing = 'foobar' %]
es mit dieser Meldung fehlschlägt: Text::Xslate::Compiler: Cannot modify ., which is not a lexical variable
.
Also, ist es sogar in Text :: Xslate möglich, innerhalb Vorlagen so zu vergeben?
Es ist bemerkenswert, dass mehrdimensionale Hashes können noch innerhalb Text erstellt werden :: Xslate Vorlagen:
[% some = {
nested => {
thing => 'foobar',
}
} %]
und dann Elemente in es kann wie [% some.nested.thing %]
referenziert werden.