2014-07-22 86 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

相關問題