Perl 在不同范围内重用变量名

Perl 在不同范围内重用变量名,perl,Perl,在下面的$DimensionSwitch示例中,我喜欢重用变量的名称。我知道$DimensionSwitch是词汇范围的,所以它似乎不会引起任何问题,但是(1)它可能会在我不知道的地方引起问题,因此(2)在Perl中重用变量名的做法是否不好 my $DimensionSwitch = checkDimensions(\@coefficients,\@predictors); sub checkDimensions{ my @a1 = @{$_[0]}; my @a2 = @{$_

在下面的
$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;
}
  • 不应该
  • 这本身并不坏。如果它使代码更难阅读,那就不好了
  • 而代码

    my $DimensionSwitch = int(@coefficients == @predictors);
    
  • 不应该
  • 这本身并不坏。如果它使代码更难阅读,那就不好了
  • 而代码

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

  • 在Perl中使用pragma“use strict”非常有用。这个pragma并不是万灵丹,但您也可以使用“使用警告”和perl-it-self-will来建议您注意许多令人讨厌的事情:)


    在Perl中使用pragma“use strict”非常有用。这个pragma并不是万灵丹,但您也可以使用“使用警告”和perl-it-self-will来建议您注意许多令人讨厌的事情:)


    在词法范围内重复使用变量名并不是禁止的,但可能会造成混淆,并造成微妙的维护难题

    您可以将其用作分析工具


    一个漂亮的web界面可以让你上传代码进行不同程度的分析。

    在词法范围内重用变量名并不是被禁止的,但可能会造成混淆,并造成微妙的维护问题

    您可以将其用作分析工具


    一个好的web界面可以让你上传不同程度的代码进行分析。

    如果它的作用域是有限的,那么它不会在其他地方引起问题,但是如果不是对你,那么对阅读你的代码的其他人来说,它会让人困惑。最好避免!如果它的作用域是有限的,那么它不会在其他地方引起问题,但是它会让人困惑,如果不是对你,那么对阅读你的代码的其他人来说。最好避免!整洁,
    int
    强制
    1
    /
    0
    而不是
    1
    /
    '
    。它是为了安全起见。我很确定这个变量被检查为真的,而不是1或0。但是我不知道作者的其他代码。整洁,
    int
    强制
    1
    /
    0
    ,而不是
    1
    /
    '
    。这是为了安全起见。我很确定这个变量被检查为真的,而不是1或0。但我不知道作者的其他代码。