1

如何查看可以传递给 Perl 模块上的新对象的参数/参数?我通常会去 CPAN 并查看该SYNPOSIS部分以了解我正在尝试做的事情的示例。但是他们提供的示例和描述并不总是全面的,我最终不得不寻找其他人使用该模块的示例,并希望有人尝试以与我相同的方式使用该模块。

这是我正在尝试使用的最新模块

 use Bio::DB::GenBank;
 my $gb = Bio::DB::GenBank->new(-format     => 'Fasta',
                                -seq_start  => 2,
                                -seq_stop   => 51,
                                -strand     => 1,
                                -complexity => 1);

如何查看可以传递给的参数的完整列表Bio::DB::GenBank->new()。有没有办法查看对象/对象/模块定义?还是对象的构造函数?

编辑:我刚刚意识到我可以从 CPAN 下载模块并自己查看模块中的代码以获取对象参数,但我想知道是否有人有更好的方法?

4

2 回答 2

2

CPAN 上的模块——确定的方法是查看代码,看看它们做了什么。这并不总是特别简单,但它是唯一确定的事实来源。

否则会有文档,开发人员应该在其中描述(公共)模块功能。这并不总是发生,有时开发人员清楚的事情对每个潜在的模块用户来说并不那么清楚。

但这部分是使用公共贡献模块库的权衡 - 一些模块经过精心打磨,它们闪闪发光,而另一些则......嗯,更多的是正在进行中的工作。

好消息是 - 大多数维护者都乐于接受更新和修复。通常,某些东西“缺乏”仅仅是因为可用的时间,或者它在功能方面满足了当前的需求。

于 2015-10-29T16:53:56.867 回答
1

首先要做的是查看文档,这是 Perl 规则的地方,因为它在命令行中可用:

perldoc Bio::DB::GenBank

该检查不需要时间。如果这不能告诉你你需要知道的一切,就像在这种情况下,我总是看下一个测试。在我看来,这是了解类/方法应该如何工作的最简单方法。如果你有一点经验,阅读好的测试比阅读文档更好/更快。阅读代码对我来说通常是最后的手段,因为即使是简单的代码也很难理解,我认为这可能归咎于风格差异(以及 Perl 本身)。

此时,如果你找不到任何测试或文档,你需要问问自己这个模块是否值得你花时间。我会说几乎总是答案是否定的。有用和流行的模块应该有一些基本的测试和文档。需要注意的一件事(尤其是 BioPerl)是,如果有文档,它可能来自另一个模块。人们经常复制模块,更改代码,然后将其上传到 CPAN 或 github :-/。

您没有提出具体问题,但我猜您正在尝试从 GenBank 获取/操作数据。在这种情况下,我建议直接使用 NCBI 的 E-Utilities 接口或使用BioPerl 中的Bio::DB::EUtilities(虽然不是核心,但需要单独安装)。有一些不错的指南,例如EUtilites CookbookEUtilities webservices guide,尽管后者基于 SOAP 服务,并且可能超出您对大多数用途的需要。

如果您有更具体的问题,我也很乐意提供帮助。

于 2015-10-30T21:05:37.077 回答