【发布时间】:2018-12-21 20:22:28
【问题描述】:
我创建了一个具有以下键值结构的哈希。
%multifasta = ('sequence1', ACCGTG, 'sequence2' , AGTCGTAGC, 'sequence3' , AGTCGCTAGCATAGCA)
其中,ACGT 字符串存储为哈希值,序列号存储为哈希键。
我想遍历存储为哈希值的字符串以计算 A、C、G 和 T 核苷酸的数量。
我尝试的是:
while(my($key, $value) = each %multifasta){
print "$key\n";
my $len = length($value);
my $nucl;
foreach $nucl($value){
print "$nucl\n";
}
}
但是,不是在print "$nucl\n"; 中为 sequence1 打印这样的值
A
C
C
G
T
G
它正在打印输出
ACCGTG
是否需要将值转换为数组,然后遍历数组,或者我可以遍历字符串并打印字符串的单个元素?
【问题讨论】:
-
请注意,您使用的是裸词作为值,并且没有警告或启用严格的编译指示,这是有效的,但非常不鼓励这样做并且是单调的。启用警告和严格的编译指示应该是您开始编写新代码时要做的第一件事。看看这篇关于裸词的文章:perlmaven.com/barewords-in-perl 我还建议你阅读 Modern Perl:modernperlbooks.com/books/modern_perl_2016/index.html
标签: perl