我有一个哈希包含匹配子串的结果.如果字符串之间没有匹配,我想打印一条消息.我尝试过以下内容并没有奏效.
foreach (keys %d) {
if ($_ eq "") {
print "no matches"; # and i've tried (if defined $_
} else {
print "$_\n";
}
}
Run Code Online (Sandbox Code Playgroud)
%d以这种方式填充(它包含匹配的子字符串):
foreach (my $i=0;$i<length($seq1)-$k;$i+=1) {
my $common=substr($seq1,$i,$k);
if ($seq2=~/$common/) {
$d{$common}++;
}
}
Run Code Online (Sandbox Code Playgroud)
我想我终于看到了你想要完成的事情.你认为检查键是否%d
等于空字符串,然后你的循环中没有匹配.这是错误的.如果没有匹配项,则没有键,循环将永远不会执行.
不幸的是,您无法检查是否%d
包含任何值.你需要这样的东西:
unless (%d) {
print "No matches\n";
} else {
print "$_\n" for keys %d;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3816 次 |
最近记录: |