Perl CGI::Application param()未设置
我有一段代码用作它的基础,但有些东西工作不正常 当我试图通过Perl CGI::Application param()未设置,perl,templates,param,cgi-application,perl-html-template,Perl,Templates,Param,Cgi Application,Perl Html Template,我有一段代码用作它的基础,但有些东西工作不正常 当我试图通过$Template->param()设置某些内容时,它似乎没有设置。 $Template等于$self->load\u tmpl($Template) 我想保存的是: $Template->param('symbols' => \%a_hash_ref); 我知道\%a\u hash\u ref包含期望值。它有一个类似的形式: {'symbol' => 'DTX'},{'symbol' => 'QFLD'}
$Template->param()
设置某些内容时,它似乎没有设置。
$Template
等于$self->load\u tmpl($Template)代码>
我想保存的是:
$Template->param('symbols' => \%a_hash_ref);
我知道\%a\u hash\u ref
包含期望值。它有一个类似的形式:
{'symbol' => 'DTX'},{'symbol' => 'QFLD'}
还有,如果我
$Template->param('Hey!xD' => 'Something');
它不保存,但是
$Template->param($Pagination);
是,其中,$Pagination
也是一个散列引用
我知道所有的值都是应该的,我还尝试了一些简单的字符串,它们应该可以工作,但它们没有设置。我知道这一点,因为当我跑步时:
my @params = $Template->param();
die Dumper \@params;
它输出它应该设置的所有变量,但是缺少预期的变量(包括'Hey!xD'
字符串)。我还知道它实际上运行代码,因为这个骰子转储程序是在我尝试设置值之后运行的
模板文件包含以下代码:
$(document).ready(函数(){main函数('[%symbol%]');
});
任何帮助都将不胜感激
编辑:
这是给参数的内容:
[
{
“日期”=>“2006-07-05”,
“平均增益”=>未定义,
'bollinger_mid'=>'32.80000',
'符号'=>'烧烤'
},
{
“日期”=>“2006-04-04”,
“平均增益”=>未定义,
“bollinger_mid”=>“34.55656”,
'symbol'=>'AAPL'
}
...
]
这实际上是一个HTML::Template问题,CGI::Application在默认情况下使用该问题进行模板设置
在load\u tmpl
调用中,是否将die\u on\u bad\u参数设置为0?如果您试图设置加载的模板()中不存在的参数,则默认情况下,HTML::Template应该失效。禁用die\u on_bad_params
时,您将获得所描述的行为,其中忽略并丢弃未知模板参数
此外,TMPL_循环
将hashrefs的arrayref作为其param
参数。也许这样传递“符号”参数会有所帮助:
my $symbols = [{ symbol => 'DTX' },{ symbol => 'QFLD' }];
$Template->param(symbols => $symbols);
如果您发布一个示例模板和显示错误的小脚本,那么肯定会更容易判断。是的,我已将其设置为0!谢谢如果当我试图设置模板上尚不存在的参数时,它将消失,那么我如何设置该参数?我阅读了文档,不明白为什么$Template->param('symbols')不存在。在我的模板中,我有以下内容:fetchQuoteData(“[%symbol%]”);你好,我从文档中添加了一些可能有用的信息。当然,非常感谢你的帮助。显然,我确实发送了一系列的hashref。我将把代码作为一个编辑器,错误是我在<和TMPL_循环之间有一个空格,所以它没有处理它。无论如何谢谢你!你太棒了;)很高兴它现在起作用了。我从未使用过HTML::Template,但它似乎非常挑剔。我知道在你已经投资的情况下,推荐其他软件包/框架并没有多大帮助,但是你考虑过使用吗?这是一个经过验证且灵活的模板系统,我已经使用了很多。还有一个用于CGI::App的插件(CGI::Application::plugin::TT)。