如何查看可以传递给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下载模块并自己查看模块中的代码以获取对象参数但是我想知道是否有人有更好的方法来做它?
答案 0 :(得分:2)
CPAN上的模块 - 确切知道的方法是查看代码,看看它们的作用。这并不总是特别简单,但它是真正的一个明确的来源。
否则就有文档,这是开发人员应该描述(公共)模块功能的地方。这并不总是发生,有时开发人员清楚的是,并不是每个潜在的模块用户都清楚。
但这部分是使用公共贡献模块库的权衡 - 一些模块非常精细,以至于它们闪闪发光,而其他模块则......嗯,更多的是正在进行的工作。
好消息是 - 大多数维护者都接受更新和修复。通常某些东西“缺乏”仅仅是因为可用时间,或者它在功能方面满足当前的需求。
答案 1 :(得分:1)
要做的第一件事是查看文档,这是Perl规则的地方,因为它在命令行中可用:
perldoc Bio::DB::GenBank
那张检查不费吹灰之力。如果这没有告诉你需要知道的一切,就像在这种情况下,我总是看下一个测试。在我看来,这是最简单的方法,看看一个类/方法应该如何工作。如果您有一点经验,阅读好的测试比阅读文档更好/更快。阅读代码对我来说通常是最后的选择,因为通常很难理解简单的代码,我认为这可能归咎于风格差异(和Perl本身)。
此时,如果您找不到任何测试或文档,您需要问自己这个模块是否值得花时间。我会说几乎总是答案是否定的。有用和流行的模块应该有一些基本的测试和文档。需要注意的一件事(特别是BioPerl)是,如果有文档,它可能来自另一个模块。人们经常复制模块,更改代码,然后将其上传到CPAN或github: - /。
你没有问一个特定的问题,但我猜你正试图从GenBank获取/操纵数据。在这种情况下,我建议直接使用NCBI的E-Utilities界面,或者使用BioPerl的Bio::DB::EUtilities(不是核心,单独安装)。有一些不错的指南,例如EUtilites Cookbook和EUtilities webservices guide,虽然后者基于SOAP服务,可能超出了大多数用途所需的范围。
如果您有更具体的问题,我也乐意为您提供帮助。