下面的子例程在我的计算机上执行需要12秒:
sub trans() {
$trans = "";
foreach $nuc (@array) {
foreach $k (keys %hash) {
if ($nuc eq $k) {
$w = $hash{$k};
$trans .= $w;
last;
}
}
}
}
该代码将继续生成具有$ trans内容的文件。正如我所说,这需要12秒钟。问题是我必须产生256个输出文件......并且它花费的时间太长......
有什么优化的想法吗?
最佳答案
尝试以下
sub trans() {
$trans = "";
foreach $nuc (@array) {
if ($hash{$nuc}) {
$w = $hash{$nuc};
$trans .= $w;
}
}
}
关于performance - Perl中的慢循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19831030/