问题标签 [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 投票
7 回答
1441 浏览

perl - 为什么我的 Perl 映射不返回任何内容?

当我运行以下语句时:

它返回一个空列表,而不是我期望的过滤列表。我要做的是 从字符串数组(这是一个 XML 文件)中删除每次出现的 。

显然,我不明白一些事情。谁能告诉我这样做的正确方法可能是,为什么这对我不起作用?

0 投票
14 回答
148345 浏览

perl - 如何判断一个变量在 Perl 中是否有数值?

Perl 中是否有一种简单的方法可以让我确定给定变量是否为数字?类似于以下内容:

将是理想的。-w在使用开关时不会发出警告的技术当然是首选。

0 投票
2 回答
13300 浏览

perl - 如何在 Perl 中测试 STDIN 而不会阻塞?

我正在编写我的第一个 Perl 应用程序——一个与 Arduino 微控制器对话的 AOL Instant Messenger 机器人,后者反过来控制一个伺服系统,该伺服系统将按下我们系统管理员服务器上的电源按钮,该服务器每 28 小时左右随机冻结一次。

我已经完成了所有困难的事情,我只是想添加最后一点代码来打破主循环并在用户键入“退出”时退出 AIM。

问题是,如果我尝试在主程序循环中从 STDIN 读取数据,它会阻止进程直到输入输入,从而使机器人处于非活动状态。我在阅读之前尝试过测试 EOF,但没有骰子...... EOF 总是返回 false。

下面是我正在使用的一些示例代码:

0 投票
6 回答
34301 浏览

perl - Perl 的 system() 如何打印它正在运行的命令?

在 Perl 中,您可以使用 system() 或 ``(反引号)来执行系统命令。您甚至可以将命令的输出捕获到变量中。但是,这会在后台隐藏程序执行,因此执行脚本的人看不到它。

通常这很有用,但有时我想看看幕后发生了什么。您是如何做到的,以便将执行的命令打印到终端,并将这些程序的输出打印到终端?这.bat相当于“@echo on”。

0 投票
9 回答
60297 浏览

perl - 如何在 Perl 中读取目录的内容?

如何让 Perl 将给定目录的内容读入数组?

反引号可以做到这一点,但有没有使用“scandir”或类似术语的方法?

0 投票
8 回答
216169 浏览

regex - 如何在保留原始字符串的同时对字符串执行 Perl 替换?

在 Perl 中,使用正则表达式对字符串执行替换并将值存储在不同变量中而不更改原始值的好方法是什么?

我通常只是将字符串复制到一个新变量,然后将其绑定到s///对新字符串进行替换的正则表达式,但我想知道是否有更好的方法来做到这一点?

0 投票
5 回答
3634 浏览

perl - 为什么我不能使用 LWP::Simple 获取维基百科页面?

我正在尝试使用LWP::Simple获取维基百科页面,但它们没有回来。这段代码:

不打印任何东西。但是,如果我使用其他网页,比如说http://www.google.com,它可以正常工作。

我应该使用其他名称来引用维基百科页面吗?

这里会发生什么?

0 投票
2 回答
1957 浏览

perl - 为什么我不能用 Perl 的 AuthCAS 连接到我的 CAS 服务器?

我正在尝试使用现有的 CAS 服务器对 Perl CGI Web 脚本的登录进行身份验证,并且正在使用AuthCAS Perl 模块(v 1.3.1)。我可以连接到 CAS 服务器以获取服务票证,但是当我尝试连接以验证票证时,我的脚本从IO::Socket::SSL模块返回以下错误:

症状/测试:

  1. 如果我将生成的身份验证 URL 键入到 Web 浏览器的位置栏中,它会返回预期的 XML 片段。所以它不是一个糟糕的主机名。
  2. 如果我在不使用 AuthCAS 模块但使用 IO::Socket::SSL 模块直接查询 CAS 服务器以对生成的服务票证进行验证的情况下生成脚本,则 Perl 脚本将从命令行正常运行,但不能在浏览器中运行。
  3. 如果我将 AuthCAS 模块添加到第 2 项中的脚本中,则该脚本不再在命令行上运行,并且在浏览器中仍然无法运行。

这是产生错误的基本脚本:

关于冲突可能在哪里的任何想法?


错误来自引用的片段 Cebjyre 正上方的行,即

即套接字创建。所有输入参数都正确。我已经编辑了模块以放入调试语句并在调用之前打印出所有参数,它们都很好。看起来我将不得不更深入地研究 IO::Socket::SSL 模块。

0 投票
5 回答
436 浏览

regex - 从相对 URL 确定完整 URL 的最快方法是什么(给定基本 URL)

我目前正在使用该模块URI::URL从相对 URL 生成完整 URL;但是,它的运行速度并没有我希望的那么快。有谁知道另一种可能更快的方法?

0 投票
3 回答
10620 浏览

python - 在脚本中从 FileMaker Pro 数据库中提取数据的最佳方法是什么?

如果我能想出一种自动化方式(最好是在 Python 脚本中)从 FileMaker Pro 数据库中提取有用信息,我的工作会更容易,或者至少不会那么乏味。我在 Linux 机器上工作,FileMaker 数据库在同一个 LAN 上运行在 OS X 机器上。我可以从我的机器登录到 webby 界面。

我对 SQL 非常熟悉,如果有人可以向我指出一些 FileMaker 插件,它可以让我通过 SQL 访问 FileMaker 中的数据,我会很高兴。我发现的一切都只是另一种方式:让 FileMaker 从 SQL 源获取数据。没用处。

这不是我的第一选择,但如果手头有 Perl-y 解决方案,我会使用 Perl 而不是 Python。

注意:XML/XSLT 服务(如一些人所建议的)仅在 FM Server 上可用,在 FM Pro 上不可用。否则,这可能是最好的解决方案。事实证明 ODBC 甚至很难开始工作。设置时,FM 的反馈绝对为零,因此您必须深入挖掘 /var/log/system.log 并解析晦涩的错误消息。

结论:我通过在通过 ODBC 连接查询 FM 数据库的机器上本地运行 python 脚本使其工作。该脚本实际上是一个 TCPServer,它接受来自 LAN 上其他系统的套接字连接,运行查询,并通过套接字连接返回数据。我不得不这样做以绕过 FM Pro 仅在本地接受 ODBC 连接的事实(外部连接需要 FM 服务器)。