我一直在研究一些用于数据挖掘的Perl库。这些库充满了用于收集和处理信息的嵌套循环。我正在使用严格模式,并且我总是在第一个循环之外用my
声明我的变量。例如:在Perl中声明变量内部或外部的循环,最佳实践
# Pretty useless code for clarity purposes:
my $flag = 1;
my ($v1, $v2);
while ($flag) {
for $v1 (1 .. 1000) {
# Lots and lots of code...
$v2 = $v1 * 2;
}
}
对于我读过here,性能明智的,它是更好地宣布他们的循环之外,但是,我的代码的维护变得越来越困难,因为一些变量的声明最终离他们实际使用的地方很远。
像这样的事情会更容易十个分量:
my $flag = 1;
while ($flag) {
for my $v1 (1 .. 1000) {
# Lots and lots of code...
my $v2 = $v1 * 2;
}
}
我没有太多的使用Perl的经验,因为我来自与C++主要工作。在某些时候,我想开源我的大部分库,所以我希望它们尽可能地让所有Perl专家满意。
从专业的Perl开发人员的角度来看,这些选项之间最适合的选择是什么?
如果这两者之间的性能差异实际上很重要,那么您应该使用C.为了可维护性,您已经发现'for $ foo'更好;尽可能在有限的范围内声明事物。 – ThisSuitIsBlackNot