关于将Perl编码为类似PHP的代码的建议

关于将Perl编码为类似PHP的代码的建议,php,perl,port,Php,Perl,Port,首先,我是一名perl程序员,但和许多人一样,我也用PHP编写客户端工作代码,尤其是web应用程序 我发现我用两种语言复制了很多项目,但使用了不同的范例(例如处理cgi输入和会话数据)或函数 我想做的是开始以一种更像PHP的结构编写Perl代码,以便 a) 我脑子里有一个范例 b) 可以更快地将脚本从一个移植到另一个 具体来说,我想问的是,人们是否可以建议您如何在perl中执行以下操作 1) 重现$\u会话,$\u GET等的功能。 e、 g.通过包装CGI.pm的param()方法,会话库 2

首先,我是一名perl程序员,但和许多人一样,我也用PHP编写客户端工作代码,尤其是web应用程序

我发现我用两种语言复制了很多项目,但使用了不同的范例(例如处理cgi输入和会话数据)或函数

我想做的是开始以一种更像PHP的结构编写Perl代码,以便 a) 我脑子里有一个范例 b) 可以更快地将脚本从一个移植到另一个

具体来说,我想问的是,人们是否可以建议您如何在perl中执行以下操作

1) 重现
$\u会话
$\u GET
等的功能。 e、 g.通过包装
CGI.pm
param()
方法,会话库

2) 类似于PHP的模板库 我习惯于在PHP惯例中混合使用我的代码和HTML。e、 g

<h1>HTML Code here</h1>
<?
 print "Hello World\b";
?>
HTML代码在这里
有人能告诉我哪种perl模板引擎(可能还有配置)允许我进行类似的编码吗

3) PHP函数库 有人知道一个perl库可以复制很多php内置函数吗?

2)如果你真的想让你的脚本成为php中的模板,那么就有一个模块(它是从另一个实际称为PerlHP的项目中衍生出来的)。还有其他模块,如HTML::Mason,用于Perl程序员认为的模板引擎


3) 在CPAN上,我找到了和,但我没有使用它们,否则无法为它们担保。

您还应该检查一下,这是一个Apache模块,试图模拟Perl的mod_php行为,尽管它的开发似乎已经停止。更多信息来自。

我本想告诉你,喜欢Perl和PHP,因为它们独特的自我,但第一名给我的印象是一点无聊的乐趣。我的建议是自己编写代码,并将其发布到CPAN。我读了你的问题,心想:

use CGI::PHPLike qw(:superglobals); # Pull in everything from CGI::PHPLike::Vars

CGI::PHPLike::Config->variables_order 'EGPCS';

...
%\u ENV
可能只是perl的
%ENV
的别名
%\u请求
%\u会话
可能是对象,等等。见鬼,
%\u会话
甚至可能由支持

阅读,并查看源代码,当然,还有一些更简单的模块,如。

看看

这是一个基于Perl的模板系统,它似乎提供了PHP所做的一切,这是基于我对PHP所知甚少

要涵盖您的具体观点:

  • $\u GET
    :EmbPerl提供哈希,其中包含通过POST或GET传递的完整表单数据集

    %fdat不区分值是来自GET的查询字符串还是来自POST的表单字段)

    如果您绝对必须只有GET的QUERY_字符串中的值,那么下面是一个简单的函数示例:-尽管我现在不明白为什么要将GET与POST数据分开

  • $\u SESSION
    :我并不是100%了解PHP的功能,但如果我是对的,每个用户数据有
    %udat
    ,每个模块/页面数据有
    %mdat
    来处理会话内容

    EmbPerl文档的“”区域将更详细地描述使用这两种方法,以及EmbPerl中的所有其他大量会话支持

    下面是一个快速的
    %udat
    简介:

    。。。只要您将任何内容写入
    %udat
    ,Embperl就会创建一个会话id,并通过cookie将其发送到浏览器。您写入%udat的数据由Apache::Session存储。下次同一用户请求Embperl页面时,浏览器将返回带有会话id的cookie,Embperl将使用您为该用户存储的相同值填充来自Apache::session的%udat哈希

  • 您包含的模板代码在EmbPerl中如下所示:

    <h1>HTML Code here</h1> [- print OUT "Hello World!"; -] 这里是HTML代码 [- 打印出“你好,世界!”; -] 或者要获得更惯用/正确的解决方案

    <h1>HTML Code here</h1> [+ "Hello World!" +] 这里是HTML代码 [+“你好,世界!”+] 另外,我不知道“
    \b
    ”在PHP中的作用,所以我没有克隆它

    Embperl支持所有标准模板材料(
    [-]
    用于执行,
    [++]
    用于包含任意Perl代码的结果,模板流控制命令(
    [$if$]
    /'[$for$]`等)等等。它还与mod_Perl完全兼容


这听起来像是“如何让一门好的语言变得更糟糕,并实现糟糕的编码风格?”…您应该尝试将perl风格移植到PHP,而不是将PHP移植到perl。1=>不要,2.=>对两者都使用模板引擎(即perl Text::Template(afair)和PHP Smarty)3=>取决于你真正需要什么功能。我是一个贡献者。因为软件对我起作用,所以我没有进一步的提交,因此我认为它已经完成了。(如果它不适合你,文件错误)。这种情况经常发生在小软件上,所以“停滞”。这不一定是坏事。好吧,我还没来得及试一试,但我肯定会的。你可能想在网站上指出这个项目被认为是稳定的,可以使用,因为第一印象是这个项目被忽略了,甚至被放弃了。“它运行移动类型”和“开始测试的时间到了”对于普通访问者来说,这并不意味着什么。我没有真正想要的答案,但公认的答案是最接近的。我认为我真正想要的是a)PHP在页面上混合html和代码的方式,并允许您包含可以共享同一会话的其他文件(与perl的以代码为中心的模型相反)b)$\u GET,$\u POST,$\u会话变量。我想我只需要根据上面的答案编写代码就行了。谢谢大家