Chinaunix

标题: Dancer的Template模板真够2的! [打印本页]

作者: py    时间: 2012-07-12 14:43
标题: Dancer的Template模板真够2的!
用Template Toolkit多年了,今天把一个以前CGI模式运行的服务搬到Dancer下,模板部分一点没改,按说用的都是Template模块不应该需要修改。结果报错:
  1. core - template - file error - parse error - /...path/views/audit.tt line 259: unexpected token (=)
  2.   [% end = (start + per_page - 1 < max)? start + per_page - 1 : max %] at /usr/local/lib/perl5/site_perl/5.14.2/Dancer/Template/Abstract.pm line 89.
复制代码
看着这样的提示就火大,这什么提示啊,搜都搜不到。
后来观察了半天,最后发现是"end"的问题,"end"应该是Dancer的模板的保留字符,不能用。但这并不是Template模块的保留字符。最后就上演了这么一出。

ps. Dancer是不是个法国人写的啊?
作者: py    时间: 2012-07-12 14:48
就是个法国人
http://fr.linkedin.com/in/asukrieh

法国人除了造爱比较擅长,造其他东西真是不敢恭维
作者: py    时间: 2012-07-12 14:51
还有一个问题,Dancer会输出很多模板中的warnings,提示Warning caught during route execution
比如我在模板中做[% IF a < b %]这样的事情,如果其中一个变量不存在就会有warning产生,有没有什么设置能关了这些警告?
作者: sjdy521    时间: 2012-07-12 20:37
本帖最后由 sjdy521 于 2012-07-12 20:49 编辑

既然是这么烂的东西,觉得完全没必要去用了
要全局关闭warning可以用BEGIN { $^W = 0 },或者perl -X试试?
作者: flw    时间: 2012-07-12 23:20
我相信有办法解决的。
作者: py    时间: 2012-07-13 08:43
sjdy521 发表于 2012-07-12 20:37
既然是这么烂的东西,觉得完全没必要去用了
要全局关闭warning可以用BEGIN { $^W = 0 },或者perl -X试试?


哪能把所有的warning全关了啊。。。

Dancer目前仍然是Perl最好用的web框架了,几乎没有可竞争者。大家说它好都是和Perl的其他框架比,和其他语言比起来还是不行。

作者: py    时间: 2012-07-13 09:07
flw 发表于 2012-07-12 23:20
我相信有办法解决的。


也不一定。。。可不能高估了这些个法国人。
我记得去年年底的时候,看到扶凯的Dancer介绍文档中提到“所有 view 的模板文件,必须有一个".tt"的后缀”,当时试了一下,果然如此,不可以以其他扩展名结尾。现在已经可以用其他扩展名了。

我觉得web框架这东西技术含量还是太少,所以没法吸引来大牛在这上费神。
作者: 斯文牛氓    时间: 2012-07-13 10:23
py 发表于 2012-07-13 08:43
哪能把所有的warning全关了啊。。。

Dancer目前仍然是Perl最好用的web框架了,几乎没有可竞争者。大 ...


大显卡catalyst,都出书了。。。。
作者: flw    时间: 2012-07-13 10:36
py 发表于 2012-07-13 09:07
也不一定。。。可不能高估了这些个法国人。
我记得去年年底的时候,看到扶凯的Dancer介绍文档中提到“ ...

试试 use Dancer qw(:syntax !end);
作者: py    时间: 2012-07-13 11:47
斯文牛氓 发表于 2012-07-13 10:23
大显卡catalyst,都出书了。。。。

Catalyst挺尴尬的,用Perl的框架就图个简单,快速,用更少的系统资源干更多的事。Catalyst大而复杂,速度慢,和当今框架背道而驰,自从Dancer出了以后Catalyst用的人就更少了。见过用Dancer做项目的,还从没见过用Catalyst的。
作者: py    时间: 2012-07-13 11:56
flw 发表于 2012-07-13 10:36
试试 use Dancer qw(:syntax !end);


试了一下,也不行

随它去吧,我把变量改个名。。。
作者: 斯文牛氓    时间: 2012-07-13 13:12
py 发表于 2012-07-13 11:47
Catalyst挺尴尬的,用Perl的框架就图个简单,快速,用更少的系统资源干更多的事。Catalyst大而复杂,速度 ...


应该还是有!
作者: 斯文牛氓    时间: 2012-07-13 13:29
突然想起一个现成的Catalyst的成品,www.metacpan.org
作者: quanpai    时间: 2012-07-13 17:45
回复 13# 斯文牛氓


    有啥根据。
作者: quanpai    时间: 2012-07-13 17:46
py 发表于 2012-07-13 11:47
Catalyst挺尴尬的,用Perl的框架就图个简单,快速,用更少的系统资源干更多的事。Catalyst大而复杂,速度 ...


Catalyst为啥慢。
作者: QQ1921961    时间: 2012-07-14 17:06
不是还有 Mojolicious::Lite  嘛!
作者: flw    时间: 2012-07-14 18:01
py 发表于 2012-07-13 20:04
Catalyst的设计初衷就是软件工程的思路,对象化了好多东西。而Perl就是个面向过程的语言,不是什么情况下都 ...

和 CGI 有一毛钱关系麽。
作者: 斯文牛氓    时间: 2012-07-16 11:30
回复 14# quanpai

大哥,github上有metacpan的源码。。。。
   
作者: quanpai    时间: 2012-07-16 12:40
回复 19# 斯文牛氓


    谢谢
作者: quanpai    时间: 2012-07-16 12:54
回复 16# py

  Dancer比Catalyst好再哪。说来听听。

作者: py    时间: 2012-07-16 13:35
回复 17# QQ1921961

Mojolicious我倒真的用过,用Mojo就看中他所宣称的支持libev,这块Dancer做的很不好。
最后还是用了Dancer是因为看到Mojo之前有个漏洞被抓到,一批网站受到影响,补丁出的还不及时。而且感觉上觉得Dancer更流行,没听说过哪个公司用Mojo的。安全起见,就用了Dancer.
   
作者: py    时间: 2012-07-16 13:47
flw 发表于 2012-07-14 18:01
和 CGI 有一毛钱关系麽。


哈哈哈哈,是没关系啊。。。 夜里胡言乱语了

可能是因为我不是做web的,不喜欢Catalyst那套费劲巴拉的整那么复杂,简简单单实现我的需求就好了
作者: quanpai    时间: 2012-07-16 14:09
回复 22# py


    其实Catalyst写你的例子也不复杂。
作者: py    时间: 2012-07-19 21:27
flw 发表于 2012-07-12 23:20
我相信有办法解决的。

找到办法了
http://search.cpan.org/~xsawyerx ... Config.pm#warnings_(boolean)
在config.yml中设置不起作用,set warnings => 0;就可以了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2