2014-07-22 57 views
1

如以下示例$DimensionSwitch所示,我喜欢重复使用变量名称。我知道$DimensionSwitch是词法范围的,所以它似乎没有引起任何问题,但(1)它可能会导致某些我不知道的问题,因此(2)在Perl中重复使用变量名是否很差?在不同的作用域中重用变量名称

my $DimensionSwitch = checkDimensions(\@coefficients,\@predictors); 
sub checkDimensions{ 
    my @a1 = @{$_[0]}; 
    my @a2 = @{$_[1]}; 
    my $Size1 = @a1; 
    my $Size2 = @a2; 
    my $DimensionSwitch; 
    if ($Size1 == $Size2){ 
     $DimensionSwitch = 1; 
    }else{ 
     $DimensionSwitch = 0; 
    } 
    return $DimensionSwitch; 
} 
+3

如果它的作用域在其他地方不会引起问题,但是如果不是你,那么对于其他人阅读你的代码将会造成混淆。最好避免! – fugu

回答

2
  1. 它不应该
  2. 它不坏本身。它是坏的,如果它使更难阅读代码
  3. 和代码...

    my $DimensionSwitch = int(@coefficients == @predictors); 
    
+0

整洁,'int'强制'1' /'0'而不是'1' /'''''。 –

+0

它在那里玩安全。我很确定这个变量是被检查出来的,并不完全是1或者0。但是我不知道作者代码的其余部分。 – user3849273

1

它真的有用使用编译Perl中“使用严格”。该编译并不是所有的治愈,但你也可以使用“使用警告”和Perl它自会建议你的很多讨厌的东西:)

http://perldoc.perl.org/strict.html

相关问题