创建了一个包并想要使用签名。
package Foo;
use strict;
use warnings;
use feature qw(signatures);
no warnings qw(experimental::signatures);
use Moose;
has bar => ( is => 'ro', isa => 'Str' );
sub boom ($self, $stuff) {
print "$stuff\n";
}
1;
Run Code Online (Sandbox Code Playgroud)
测试一下:
perl -wc Foo.pm
The signatures feature is experimental at ./Foo.pm line 11.
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?我认为“无警告”编译指示会抑制该警告!
我在这里遗漏了一块,希望有人能指出我做错了什么。
Mojolicious 应用程序有一个 /export 路由,它创建一个 href 并将该数据发送到 export.html.ep 模板以呈现为一个字符串(将生成一封电子邮件)
模板已被剥离到裸露的骨头以进行测试:
% my $data = stash 'data';
% dumper $data;
<div></div>
Run Code Online (Sandbox Code Playgroud)
出口路由功能:
use base 'Mojolicious::Controller';
...
sub export {
my $self = shift;
my $log = $self->log;
my $href = {
foo => "bar",
boom => [ "three", "two", "one" ],
};
$self->stash(data => $href);
my $html = $self->render_to_string();
$log->debug("html is ", { filter => \&Dumper, value => $html });
}
Run Code Online (Sandbox Code Playgroud)
我的测试仪是 export.t:
...
$t->get_ok("/export")->status_is(200);
print Dumper($t->tx->res->content->asset->slurp);
...
Run Code Online (Sandbox Code Playgroud)
在我的日志中,我看到:
html is …Run Code Online (Sandbox Code Playgroud)