Questions tagged [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.

Filter by
Sorted by
Tagged with
0 投票
4 回答
31223 浏览

如何使用正则表达式获取 URL 的最后一段

我有一个网址:

如何获得斜线之间的最后一个术语?即last使用正则表达式?

请注意,该 URL 可能只是:

或者:

我需要提取最后一个术语,以便在使用 PERL 和 REGEX 的 Zeus 服务器的请求重写模块中使用。

更新

在实现了一些答案之后,我刚刚意识到我需要只在某个目录中的 URL 上进行这种匹配。

IE

应该返回last。然而:

不应返回匹配项。

0 投票
1 回答
10459 浏览

如何使用 LWP::UserAgent 接受 gzip 压缩的内容?

我正在使用 Perl 在 Web 上获取一些页面,LWP::UserAgent并希望尽可能有礼貌。默认情况下,LWP::UserAgent不会通过 gzip 无缝处理压缩内容。有没有一种简单的方法可以做到这一点,为每个人节省一些带宽?

0 投票
6 回答
2160 浏览

sed优化(基于较小数据集的大文件修改)

我确实必须处理非常大的纯文本文件(超过 10 GB,是的,我知道这取决于我们应该称之为大的),而且行很长。

我最近的任务涉及基于另一个文件中的数据进行一些行编辑。

数据文件(应该修改)包含 1500000 行,每行例如 800 个字符长。每一行都是唯一的,并且只包含一个身份号码,每个身份号码都是唯一的)

修改文件是例如1800 行长,包含一个身份号码,以及一个应该在数据文件中修改的数量和日期。

我刚刚将修饰符文件(使用 Vim 正则表达式)转换为 sed,但效率非常低。

假设我在数据文件中有这样一行:

我需要修改 300 字符部分中的数据。

基于修饰符文件,我想出了这样的 sed 行:

所以我有1800行这样的。

但我知道,即使在非常快的服务器上,如果我执行

它非常慢,因为它必须读取每个模式 x 每一行。

没有更好的方法吗?

注意:我不是程序员,从未(在学校)学习过算法。我可以在服务器上使用 awk、sed、perl 的过时版本。

0 投票
5 回答
2515 浏览

如何在 Perl 中捕获 rsync 进度消息?

我想从 Perl 脚本中捕获 rsync 进程发出的所有进度消息。在某些情况下,这不起作用。

这是我使用的典型 rsync 命令行:

如果我在 bash shell 中运行它,我会看到如下内容:

如果我在 Perl 中尝试相同的命令,我会得到“构建文件列表”输出 OK,但不是状态更新。这是我测试捕获的方法

我的猜测是,要么 rsync 感知到输出句柄不是典型的控制台,要么以某种我没有捕获的不寻常方式输出。然而,更奇怪的是,如果我省略 --include 和 --exclude 过滤器,我可以很好地捕获状态消息。

有人知道发生了什么吗?

0 投票
1 回答
626 浏览

Perl 中的参考:哈希数组

我想遍历对哈希数组的引用,而不必制作本地副本,但我不断收到 Can't use string ("1") as an ARRAY ref while "strict refs" 错误。为什么?我如何解决它?

0 投票
4 回答
409 浏览

perl:如何从预编译版本中获取原始正则表达式?

简单代码:

结果:

是否有任何正确的方法来反编译 $re2 以取回原始正则表达式?

动机:正则表达式是一个配置值,所以需要:

  • 阅读
  • 编译它
  • 将其保存到文件中以供以后使用。

但是不能保存已编译的正则表达式以供以后使用,因为在每次编译中,正则表达式都使用 (?^u: 进行扩展,因此经过几个循环后,我以如下结尾:

因此问题是:

  • 这里有什么正确的方法,如何保存编译后的版本?
  • 如果没有办法 - 如何反编译,以获得原始版本?
  • 任何的想法?
0 投票
3 回答
4205 浏览

脚本标题过早结束 - 什么,我不知道!

我尝试在我的服务器上执行一个简单的 perl 脚本,我得到一个内部 500 服务器,当我检查错误日志时它显示:

Premature end of script headers: test.pl

这是 perl 脚本:

我的cgi-bin文件夹的权限为 0755。脚本本身也是 0755。该脚本由 apache 拥有,并且属于 apache 组。该脚本可以通过命令行正常工作。

有什么问题,我该如何解决?!

感谢大家的帮助!

更新

suExec 中的有趣发现:

但是我的 cgi 文件夹与 test.pl 脚本相同——它是指另一个目录吗?

0 投票
2 回答
1134 浏览

如何使用 SOAP::Lite 获得详细(或调试)输出?

我有一个可用的 SOAP::Lite 客户端。它适用于已建立的服务器,但到目前为止,我的开发服务器除了 404 之外什么都没有发回。(这很奇怪,因为我什至没有看到服务器端的连接。)

我习惯的最接近的平行线是Net::FTP.

0 投票
2 回答
976 浏览

Perl - 如何抑制分叉子进程的输出

我有一个 perl 脚本,它必须在 exec 中调用 tar。

这是一个我已经分叉的子进程,与此同时,我正在通过向 STDOUT 写一个句号来监视 tar 的进度。我遇到的问题是我不希望 tar 在创建 tarball 时变得冗长 - 我不希望输出回显到 stdout ....我只希望进度计数器(句号)回显到屏幕。我以为我可以在 exec 命令中传递 a >/dev/null 2>&1,但这不起作用。

任何想法都非常受欢迎。谢谢并恭祝安康

0 投票
4 回答
5608 浏览

Perl 有多处理模块吗?

Perl 有多处理模块吗?与 Python 的multiprocessing 模块提供的功能相似的东西。

我知道我可以使用 Perl 构建类似的功能,但我正在寻找已经实现的东西。


15 30 50 per page
1
2 3 4 5
1498226