问题标签 [mod-perl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
435 浏览

perl - 一种在 FLY 中更改 Template::Toolkit 中 INCLUDE_PATH 的方法

如果我有一个预加载的 Template::Toolkit 对象,例如在 mod_perl 环境中,有没有办法在不重新创建对象的情况下更改 INCLUDE_PATH 数组?

0 投票
1 回答
173 浏览

perl - 石匠反应前后的这些数字是什么意思?

我在 Ubuntu 10.10 (x86) 上使用 mod_perl 2、mason 和 apache 2.2(来自 apt 的标准包)。当我向服务器发送 HTTP 请求时,我得到以下信息:

我对此有点好奇。这些数字(38 和 0)是什么意思?我查看了我的日志,但没有看到任何有意义的内容,而且我似乎无法找出谷歌的最佳搜索词组(如果我遗漏了文档中明显的内容,我很抱歉)。我从 telnet 得到了相同的结果(但 Firefox 似乎没有抛出任何错误)。

这是我的请求的内容(省略最后的空格):

和我的脚本(test.html):

提前致谢!

0 投票
1 回答
271 浏览

perl - 为什么 CGI.pm 对象中的某些标头信息会持续存在,而另一些则不会?

我和我的同事正在维护和开发一个通过mod_perl.

现在我们正在经历一次重大的遗留代码重构,其中我们已经实现了某种 MVC 模式。

除其他外,我的任务是确保所有 HTTP 响应标头都被处理并发送回主控制器内的浏览器。例如,如果需要重定向,页面处理程序会抛出异常,然后主控制器捕获它并生成相应的标头。

在我开始实现 cookie 处理之前,一切看起来都很好。在此之前,我们的代码只是在需要时打印 cookie 标头以输出,如下所示:

现在我希望$response对象存储该信息,以便以后可以将所有标头一起发送。我认为它会是这样的:

但似乎CGI类对象并没有存储它使用该header方法创建的所有标头。一些标题似乎持续存在,而另一些则没有,这是我得到的re.pl

我希望最后一个输出与前一个输出相同,或者与第一个输出相同,但我尚未设置任何标题。我没想到它会部分改变。

这就是为什么我要问我的问题:为什么 CGI.pm 对象中的某些标头信息会持续存在,而另一些则不会?

我是否错误地使用了该对象?有没有办法按照我的意图使用它?

PS:很抱歉这个问题很长,我想确保你明白我想要做什么。

PPS:另外,我知道这里的很多人建议不要使用 CGI 并使用 Catalyst。恐怕现在不是一个选择,因为我们有太多遗留代码,我们希望完全摆脱 mod_perl。这仅对特定功能是必需的。

0 投票
2 回答
417 浏览

ajax - 使用 javascript 的客户端处理与使用 mod_perl 的服务器端

我有一个 perl 脚本,可以将字符串转换为不同的编码,如 base64、ASCII 或十六进制(两种方式)。现在我正在为它编写 ajax 前端,我的问题是;如果我想自动检测提交的字符串的编码,在我将它发送到服务器之前对使用 javascript 提交的字符串执行正则表达式搜索是否更有效,或者将它留给 perl 脚本计算是否更快出什么类型的字符串?

为了澄清,我问这两个中哪一个更好:

  1. 提交的字符串
  2. Javascript 检测编码
  3. AJAX 提交编码和字符串到 perl 脚本
  4. Perl 脚本返回解码后的字符串

或者

  1. 提交的字符串
  2. AJAX 将字符串提交到 perl 脚本
  3. Perl 脚本检测编码并返回解码后的字符串

是否有一个特定的经验法则应该在哪里执行这种类型的处理,您认为什么更好(意味着更快)实施?

0 投票
1 回答
166 浏览

apache - 基本的 mod_perl 问题

我是 Perl 的新手。

我写了一个非常简单的 Perl 程序(脚本):

当我在命令提示符下(使用命令 - perl first.pl)执行它时,它可以工作。

但是,当我在 apache 的“过滤器”中使用相同的 Perl 代码时,它不起作用。为了提供更多详细信息,我在 httpd.conf 文件中使用以下配置为 Apache Http Server 中的 URL 调用过滤器:

FirstPerlProg.pm 文件(在 indigoampp\perl-5.12.1\site\lib\MyApache2 位置)与 first.pl 具有相同的代码。

index.html 页面(第一页)有一个表单,该表单将请求提交给 something.do 并调用此过滤器。

问题是,我如何以及在哪里看到这个过滤器的输出(你好)?

希望我的问题很清楚。

我知道我没有在此过滤器代码中将任何 HTTP 响应发送到浏览器,这就是为什么我在提交后得到“页面无法显示”的原因。但是我该怎么做是我不知道的。

谢谢。

0 投票
1 回答
195 浏览

perl - PerlInputFilterHandler 一次又一次地调用自己

它与 mod_perl 有关。

我的位置标签中只指定了一个过滤器。

在这里,当我在浏览器中点击http://localhost/testproj/AServlet URL 时。它只是挂起。Test3 过滤器一次又一次地调用自己。我只想执行一次 Test3 过滤器并将控制权传递给“AServlet”资源。

我该怎么办?

谢谢。

0 投票
2 回答
1553 浏览

perl - 如何使用 mod_perl 修改发布请求内容

如何使用 mod_perl 的过滤器/处理程序修改发布请求内容?

我可以在 PerlResponseHandler 中读取请求内容,但如何将修改后的内容“附加”回请求中?

另外,我不想在 PerlResponseHandler 中执行此操作,因为我希望请求的资源来处理响应生成部分。

任何帮助将不胜感激。

谢谢。

0 投票
2 回答
4354 浏览

perl - 在 Windows 上安装 CPAN 模块

我正在尝试在 Windows 7 上安装 CPAN 模块。我没有 Active Perl,因此无法使用 PPM 包。

所有站点上给出的步骤都包括这三个步骤:make、make test 和 make install。我知道 make 是 unix 命令,不会在 Windows 上运行。

我应该在 Windows 上运行什么命令来完成安装?

如其中一个站点所述,我从 CPAN 站点下载了 dmake,但是当我运行它时,它会出现以下错误-

D:\Parse-RecDescent-1.965001.tar\Parse-RecDescent-1.965001>D:\dmake\dmake\dmake dmake: 错误: -- `D:\indigoampp\perl-5.12.1\libConfig.pm' not found,并且不能制造

请让我知道如何完成这些步骤。谢谢!

PS:同样,PPM 不是一个选项。


感谢大家。

在 indigoampp\perl-5.12.1\lib 位置有一个名为 Config_heavy.pl 的文件。它有一行:make='nmake'。当我使用 dmake 命令时,我将其更改为 make='dmake' 。

在此之后,我不需要在每个模块的 Makefile 中更改 DIRFILESEP。它现在正在生成 \\ 如上述链接中所述。

所以我现在可以运行 dmake、dmake test 和 dmake install。然而它什么也没做。它没有在各个位置复制 pm 文件/文件。为什么这样??

无论如何,我手动复制了 pm 文件/文件,希望一切正常。但是,我以前也可以这样做。为什么我运行 makefile.pl 和 dmake 命令?

另外,我的目标是安装 Apache2::Request 模块。我发现它依赖于多个模块。我下载了这些模块并为它们运行了上面的命令 - 没有错误。最后,当我为 Apache2::Request 模块运行这些步骤时,我在 dmake 命令中收到以下错误:

我在 libapreq2-2.12.tar\libapreq2-2.12 文件夹下的 Makefile 中没有发现任何可疑内容。Makefile 的部分内容(在错误行周围)是:

任何人都可以帮助解决这个和上述问题(为什么它没有自动复制 pm 文件)?谢谢你的时间!

0 投票
1 回答
760 浏览

perl - 在 mod_perl2 中获取 UTF-8 请求参数字符串

我将 mod_perl2 用于网站并使用 CGI::Apache2::Wrapper 获取页面的请求参数(例如发布数据)。我注意到 $req->param("parameter") 函数返回的字符串不是 UTF-8。如果我按原样使用字符串,我可能会得到乱码的结果,所以我需要使用 Encode::decode_utf8() 对其进行解码。无论如何,要么获取已经解码为 UTF-8 字符串的参数,要么循环遍历参数并安全地解码它们?

0 投票
1 回答
105 浏览

perl - 从 PerlInputFilterHandler 生成响应时出错

我的 httpd.conf 位置标签中只有一个过滤器:

测试是一个 PerlInputFilterHandler。

如果我在此过滤器中有以下代码:

它产生响应——换句话说,它发送“欢迎!!!” 到浏览器。

但是,如果我遵循代码(启用注释代码):

这行不通。“欢迎!!!” 不会进入浏览器 - '404' 会。

你能在这里提出一些建议吗?

非常感谢!