在html中嵌入Perl的最简单方法

Mic*_*Mao 7 model-view-controller perl cgi

我在网上研究过,发现了几个有趣的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
Run Code Online (Sandbox Code Playgroud)

我担心他们中没有人能让我直接将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>
Run Code Online (Sandbox Code Playgroud)

请关注我对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
Run Code Online (Sandbox Code Playgroud)

所以不幸的是,我现在正在寻找其他方式......

好吧,出于同样的原因,似乎无法安装HTML :: Mason.因此,我恐怕必须找到.pm唯一的解决方案,这样我就不需要在uni服务器的perl环境中安装任何东西......

Ale*_*nii 5

不要将Perl嵌入到HTML中.使用模板系统,如Template Toolkit或HTML :: Template.它们可以直接复制到服务器(如果您不使用XS stash for TT)或下载此操作系统的端口并解压缩.


Mat*_*son 3

Perl 模块不必由管理员安装。如果您将 Perl 指向正确的位置,则可以从任何地方找到它们并运行它们。

对于仅包含 Perl 代码 (.pm) 而没有编译代码的模块,这就像将正确目录结构中的 .pm 文件上传到您的网站一样简单。