|
1
7
我也有一些其他的评论,但这里是第一个观察:
所以
以下是我的写作方式:
|
|
|
2
9
您得到了一些关于语法的建议,但是我也建议使用更模块化的方法,如果没有其他原因的话,代码的可读性。如果你能在担心低级细节之前了解全局,那么就更容易掌握代码的速度。 您的主要方法可能如下所示。
您还可以使用以下几种较小的方法:
通过定义更小的方法(getter、setter等等),您可能会做得更进一步。在那一点上,你的中层方法
|
|
|
3
8
一个简单的改变是使用
有关详细信息,请参阅上的Perl文档 foreach loops 以及 range operator . |
|
|
4
7
而不是像这样取消对二维数组的引用:
这样做:
此外,您还做了很多if/then/else语句来匹配特定的子序列:这可以更好地写成
|
|
|
5
5
您的大多数代码都在操作二维数组。我认为最大的改进是改用 PDL 如果你想对数组做很多事情,特别是在效率问题上。它是一个Perl模块,提供了出色的数组支持。为了提高效率,底层例程在C中实现,因此速度也很快。 |
|
|
6
0
我总是建议你看看 CPAN 对于以前的解决方案或如何在Perl中进行操作的示例。你看过吗 Algorithm::NeedlemanWunsch ? 本模块的文档包括一个匹配DNA序列的示例。下面是一个使用相似矩阵的示例 wikipedia .
下面是一些示例输出:
|
|
|
con · Negative Lookaward在perl正则表达式中不起作用 11 月前 |
|
|
Carsten · 使用最近的搜索模式更改文本块 1 年前 |
|
|
A.Ellett · 测试-t STDIN与-t<STDIN> 1 年前 |
|
|
con · 如何跳转到foreach迭代的特定点? 1 年前 |