常见的代码是:
use strict;
use warnings;
my $f = $ARGV[0];
use Bio::EnsEMBL::Registry;
use Bio::EnsEMBL::ApiVersion;
my $registry = 'Bio::EnsEMBL::Registry';
$registry->load_registry_from_db(
-host => 'ensembldb.ensembl.org',
-user => 'anonymous',
-port => '5306'
);
my $adaptor = $registry->get_adaptor( 'Homo sapiens', 'core', 'transcript' );
my $transcript =
$adaptor->fetch_by_translation_stable_id($f);最后一行
对于最后一行,我在将两个值打印为同一行中的两列时遇到了问题:
尝试1代码:打印$f。$transcript->display_id。"\n";
结果: api.test.pl ENSP00000418690
ENSP00000418690ENST00000488594
尝试2代码:打印$f,$transcript->display_id。"\n";
结果: perl api.test.pl ENSP00000418690:
ENSP00000418690ENST00000488594
任何其他尝试都会影响访问display_id。我希望格式是: ENSP00000418690 ENST00000488594
发布于 2012-07-16 19:32:56
如果需要值之间的空格,请打印值之间的空格。
print $f, " ", $transcript->display_id, "\n";点将两个字符串连接成一个字符串,这在这里不是必需的,因为print接受逗号分隔的值列表。
发布于 2012-07-16 21:32:13
仅提到另一种可能性,您可以使用两个内置的perl变量。
{
local $, = " "; # Output field separator
local $\ = "\n"; # Output record separator
print $f, $transcript->display_id;
}输出字段分隔符将自动打印在传递给print的列表中的每个参数之间。输出记录分隔符打印在print的最后一个参数之后。默认情况下,两者都是未定义的,并被解释为“不打印任何内容”。
我将它们声明为块的本地,这是将它们限制在单个print语句中的最简单方法。
https://stackoverflow.com/questions/11503014
复制相似问题