问题标签 [perl-module]

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 投票
2 回答
1941 浏览

perl - 使用 WWW::Mechanize在该标签内获取文本时获取文本

我是 Perl-HTML 的新手。我正在尝试从 HTML 表中获取文本和链接。

这是HTML结构:

我想通了WWW::Mechanize是从零件中获取我需要的东西的最简单的模块<a>,但我不确定如何从<td>. 我希望这两个任务背靠背发生,因为我需要将每个单元格哈希数组中<td>-Text的对应<a>-Text

任何帮助都感激不尽!

禅宗

0 投票
2 回答
147 浏览

perl - 是否有使用 Module::Build 编写测试(和构建)的文档?

所以我制作了一些模块供我自己使用,我想知道是否有任何关于如何使用 Module::Build 为 perl 模块编写测试的文档。

我遇到的具体问题是我有三个模块,HomeBrew::IOHomeBrew::StatsHomeBrew::Bio,我不知道如何按照文件的排列方式分别构建或测试它们。

这三个模块文件位于同一个目录.../HomeBrew/lib/HomeBrew/中,并且我在目录中有三个 Build.PL 文件.../HomeBrew/(命名IO-Build.PL等),三个 .t 文件位于.../HomeBrew/t/(命名HomeBrew-IO.t等)中。

似乎发生的是三个 Build.PL 文件似乎不知道它们一次只应该构建一个模块。我将向您展示其中之一:

(我可能应该使用 File::Temp 而不是 POSIX,但这仅用于测试,所以它不是高优先级)

将来,我想将我的测试脚本更改为每个子例程都有一个,这样我就可以Build test checkExist一次只检查一个子程序。

所以,

  1. 如何确保 create_build_script() 不包含lib/HomeBrew. 我更愿意将所有 HomeBrew 模块文件保存在.../HomeBrew目录中,但我是否必须将每个文件分开到不同的目录中?

  2. 我如何为每个子例程进行测试,以便 Module::Build 知道如何测试整个模块或仅测试其中的一部分?

现在,当我说它./Build test同时测试所有三个模块时(并一次./Build install安装所有三个模块)。

0 投票
1 回答
939 浏览

html - 从 HTML 页面中提取所有链接,从特定表中排除链接

我对 Perl/HTML 很陌生。这是我要对WWW::MechanizeHTML::TreeBuilder做的事情:

对于 Wikipedia 上的每个化学元素页面,我需要提取指向 wiki 上其他化学元素页面的所有超链接,并以这种格式打印每个唯一对:

唯一的问题是每个化学元素的页面(页面右上角)都有一个迷你元素周期表。因此,这个微小的元素周期表只会使每个元素的结果都相同。我在从该表中提取页面中的所有链接时遇到问题。

$elem == 6[注意:为了便于调试, 我只查看了(Carbon) (@line 42)。]


这是我的代码:

0 投票
4 回答
2201 浏览

perl - Old .pl modules versus new .pm modules

I'm a beginner in Perl and I'm trying to build in my head the best ways of structuring a Perl program. I'm proficient in Python and I'm used to the python from foo import bar way of importing functions and classes from python modules. As I understood in Perl there are many ways of doing this, .pm and .pl modules, EXPORTs and @ISAs, use and require, etc. and it is not easy for a beginner to get a clear idea of which are the differences, advantages and drawbacks of each (even after reading Beginning Perl and Intermediate Perl).

The problem stated, my current question is related to a sentence from perldoc perlmod:

Perl module files have the extension .pm. The use operator assumes this so you don't have to spell out "Module.pm" in quotes. This also helps to differentiate new modules from old .pl and .ph files.

Which are the differences between old .pl way of preparing modules and the new .pm way?

Are they really the old and the modern way? (I assume they are because Perlmod says that but I would like to get some input about this).

0 投票
2 回答
3886 浏览

perl - 如何使用 Perl 的 Google::Search 来查找特定的 URL?

基于 AJAX Search API 的 Google::Search 模块似乎不太好用,还是只有我自己?

例如,我使用 firefox 搜索 google:http ://bloggingheads.tv/forum/member.php?u=12129

它带来结果。

但是当我以这种方式使用模块时:

我在数组中什么都没有。

任何的想法?

似乎这个 API 并没有像手动搜索那样带来相同的结果,我错过了什么吗?

0 投票
2 回答
131 浏览

perl - 如何在 Perl 中读取传递给构造函数的参数和通过“使用模块”传递的参数?

目前我正在制作一个新模块,我想知道如何在我的模块 2 中实现。

我们经常看到use这样的:

例如:

  1. 所以第一个问题是,我如何检索这个,我的意思是用户是否指定了任何内容以及他指定了什么?

  2. 第二个问题是,我如何直接在构造函数上传递和读取参数,如下所示:

    我的 $my_module = My::Module->new(arg1,arg2,arg3);

正如在评论中要求的简单模块测试代码:

0 投票
4 回答
810 浏览

perl - 为什么 Perl 的 $OSNAME 在 Solaris 上不起作用?

$OSNAME我记得在 Linux中使用过这个变量。

目前我正在 Solaris 上开发一个项目,我需要获取操作系统名称并且该变量在 Solaris 上不起作用。

即使是简单的单行程序也不起作用:

它打印

请帮忙。

0 投票
3 回答
2758 浏览

perl - 如何在 Perl 中解析用户代理字符串?

我需要从文本文件中解析 HTTP 标头中的用户代理,以确定浏览器、版本、操作系统和可能的设备。这些行的例子很少:

由于这些字符串种类繁多,我认为使用有人提供的经过验证且可靠的解析器会是一个更好的主意。我确实在 PHP 或 java 中找到了一些,但似乎没有为 Perl 找到一个。

有人可以告诉我任何这样的模块吗?

0 投票
3 回答
117 浏览

perl - 反馈、关于我的模块的问题以及我是否应该更改任何内容?

  1. 这是正确的方法,所以我可以在我的代码上重新使用数据库,而不必打开一个新连接,或者每次我使用它时都会打开一个新连接?

  2. 我应该更改模块上的任何内容吗?还是我做错了什么?

目前我只是在学习并考虑做我自己的引擎模块,所以我从这个开始。

简单的测试代码(下面的代码不被审查,只是一个关于如何使用模块的示例):

0 投票
1 回答
660 浏览

perl - 我怎样才能挂钩 Perl 的使用/要求,以便我可以抛出异常?

如果文件已经加载,是否有任何方法可以连接到文件中,use/require以便我可以抛出异常?在我即将到来nextgen::blacklist的 中,如果使用某些模块,我会尝试死亡。我正在使用中提到的对象挂钩方法perldoc -f require:有三类挂钩object带有 subref 的数组subref。这篇文章中的例子是 object-hook,你可以在nextgen::blacklist.

我想要的语法是这样的:

perl -Mnextgen -E"use NEXT"

理想情况下,它应该抛出这样的消息:

我已经尝试了很多不同的方法。

似乎%INC这些钩子之后设置。我对任何可以让我抛出异常的东西都感兴趣。如果尝试加载/重新加载一个模块,尽管它的状态是其他不使用我的编译指示的模块的依赖项,我想死。