我在网上研究过,发现了几个有趣的Perl模块/框架,比如
HTML:Mason,HTML :: Embperl,或MVC Catalyst框架等,它们可以让我在html中嵌入Perl,类似于html中的
PHP代码.
但是,我的Perl项目必须上传到只提供有限权限和资源的uni服务器.
例如,Apache 1.3.3版和Perl版本5.8.0(低于Catalyst的要求)
我使用脚本检查所有已安装的Perl模块,只有那些名称包含单词“html”:
HTML::HeadParser 2.17 HTML::Entities 1.23 HTML::Filter 2.09 HTML::LinkExtor 1.31 HTML::Parser 3.26 HTML::PullParser 2.06 HTML::TokeParser 2.24 HTML::Tagset 3.03 HTML::Form 0.03
我担心他们中的任何一个都不能让我直接将Perl嵌入到html中.
我知道我可以使用简单的print语句和“heredoc”在Perl / CGI中的html页面上打印所有内容,但我认为这违反了MVC设计范例,并且开发灵活性较低且更复杂,主要是因为现在的业务逻辑是弄乱了html标记.
我目前的解决方案是使用jQuery触发AJAX请求,以便从客户端将html加载到特定标记中.因此在这种情况下,Perl仅用于提供服务器端数据访问,操纵相关数据并提供对AJAX请求的JSON格式响应.
我想知道有更好的方法吗?我几乎无法改变服务器状态,我认为系统管理员不会那么慷慨安装任何其他Perl模块.
更新信息:
将Perl嵌入到html中的主要原因是我对CGI编程很新,而且由于我对PHP和jQuery更熟悉,我想知道是否有一种正确的方法将Perl直接嵌入到html中,所以我可以很快完成客户端部分并专注于服务器端.
说,像这样:
<div id='user_status'>Your last visit was :[% getLastVisitDateTime($userId)%]</div>
请关注我对Perl / CGI的一点知识,并且非常感谢您的帮助.
更新第2期:
按照Template Toolkit网站说明,我在我自己的MacBook Pro上安装了这个模块,但不幸的是由于许可原因我不能将它安装到uni的服务器上:
Warning: You do not have permissions to install into /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi at /usr/lib/perl5/5.8.0/ExtUtils/Install.pm line 84. mkdir /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread- multi/auto/Template: Permission denied at /usr/lib/perl5/ 5.8.0/ExtUtils/Install.pm line 137 make: *** [pure_site_install] Error 255
所以不幸的是,我现在正在寻找其他方式……
好吧,出于同样的原因,似乎无法安装HTML :: Mason.因此,我担心我必须找到.pm唯一的解决方案,这样我就不必在uni服务器的perl环境中安装任何东西……