2012-07-16 84 views
0

常见的代码是:perl的印刷变量

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代码:print $ 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

回答

1

如果要在值之间留出空格,请在值之间打印空格。

print $f, " ", $transcript->display_id, "\n"; 

的点连接两个字符串连接为一个字符串,在这里是没有必要的,因为print接受一个逗号分隔值列表。

+0

非常感谢..它的工作! – user1504209 2012-07-16 12:48:32

0

只要提到另一种可能性,您可以使用两个内置的perl变量。

{ 
    local $, = " "; # Output field separator 
    local $\ = "\n"; # Output record separator 
    print $f, $transcript->display_id; 
} 

输出字段分隔符被传递给print列表中的每个参数之间自动打印。输出记录分隔符在print的最后一个参数后面打印。两者默认都是未定义的,并且解释为“不打印任何东西”。

我将它们声明为本地块,作为将它们限制为单个print语句的最简单方法。