Perl Catalyst/TT中的内联模板

Perl Catalyst/TT中的内联模板,perl,catalyst,Perl,Catalyst,我想知道是否有人知道如何在Catalyst中的模块的数据部分内联模板(我想使用模板工具包),就像在Mojolicious中一样,在Mojolicious中,您可以这样做(从文档中): #/bar 获取“/bar”=>sub{ 我的$self=shift; $self->stash(一个=>23); $self->render('baz',two=>24); }; __资料__ @@baz.html.ep 神奇的数字是和。 虽然我以后可能会将所有内容移动到一个单独的文件中,但在编写代码时,它使维

我想知道是否有人知道如何在Catalyst中的模块的数据部分内联模板(我想使用模板工具包),就像在Mojolicious中一样,在Mojolicious中,您可以这样做(从文档中):

#/bar
获取“/bar”=>sub{
我的$self=shift;
$self->stash(一个=>23);
$self->render('baz',two=>24);
};
__资料__
@@baz.html.ep
神奇的数字是和。
虽然我以后可能会将所有内容移动到一个单独的文件中,但在编写代码时,它使维护更加容易

谢谢

西蒙

概念验证:

package Foo::Bar::Controller::Root;
use Moose;
use namespace::autoclean;
BEGIN { extends 'Catalyst::Controller' }
use Inline::Files;
use Template;
__PACKAGE__->config(namespace => '');
sub end :ActionClass('RenderView') {
    my ($self, $c) = @_;
    my $in = readline $c->stash->{template};
    my $tt = Template->new;
    my $out;
    $tt->process(\$in, $c->stash, \$out) or die $tt->error;
    $c->response->body($out);
}
sub bar :Path {
    my ($self, $c) = @_;
    $c->stash(template => 'BAZ', one => 23, two => 24);
}
__PACKAGE__->meta->make_immutable;
1;

__END__

__BAZ__
The magic numbers are [% one %] and [% two %].
它很管用,但我不能推荐它。这是对MVC原则的严重违反。Catalyst的基础是。

概念证明:

package Foo::Bar::Controller::Root;
use Moose;
use namespace::autoclean;
BEGIN { extends 'Catalyst::Controller' }
use Inline::Files;
use Template;
__PACKAGE__->config(namespace => '');
sub end :ActionClass('RenderView') {
    my ($self, $c) = @_;
    my $in = readline $c->stash->{template};
    my $tt = Template->new;
    my $out;
    $tt->process(\$in, $c->stash, \$out) or die $tt->error;
    $c->response->body($out);
}
sub bar :Path {
    my ($self, $c) = @_;
    $c->stash(template => 'BAZ', one => 23, two => 24);
}
__PACKAGE__->meta->make_immutable;
1;

__END__

__BAZ__
The magic numbers are [% one %] and [% two %].

它很管用,但我不能推荐它。这是对MVC原则的严重违反。Catalyst是建立在MVC原则之上的。

我不认为这是对MVC原则的滥用。另一方面,我也不认为这是一个特别好的主意:)早期/小项目黑客,是的。作为一种标准的做事方式,不太好。非常感谢。同时,我还试用了Data::Section::Simple。我同意-在试用之后-在试用的早期阶段这是很好的,但是我不想对任何超过10行的模板保持这种方式。我不认为这是对MVC原则的滥用。另一方面,我也不认为这是一个特别好的主意:)早期/小项目黑客,是的。作为一种标准的做事方式,不太好。非常感谢。同时,我还试用了Data::Section::Simple。我同意-在试用之后-在试用的早期阶段这是很好的,但是我不想对任何超过10行的模板保持这种方式。