我创建了一个具有以下key:value结构的哈希。
%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";
A
C
C
G
T
G
它像打印输出一样
ACCGTG
我是否需要将值转换为数组,然后遍历数组,还是可以遍历字符串并打印字符串的单个元素?
答案 0 :(得分:3)
您似乎想将字符串转换为单个字符列表。具有空白模式的split
函数将执行此转换。
...
my @chars = split //, $value;
foreach my $nucl (@chars) {
print "$nucl\n";
}
答案 1 :(得分:2)
看看
perldoc -fsplit
您需要类似
print join("\n", split('',$value));
答案 2 :(得分:1)