Perl中的显式包错误

cqu*_*ini 0 arrays perl

我试图解析一个字符串并将部分放在一个数组中,然后将数组组件分配给新的变量.我在我的代码中以完全相同的方式完成了它并且它可以工作,但现在它失败了,我不知道为什么.我认为这很简单,我太接近了.

sub timeDiff {
    my ($tday,$tmon,$tyear,$pday,$pmon,$pyear,$tvalue,$pvalue,$reset);
    my (@arrSplitTDate,@arrSplitPDate,$arrSplitTDate,$arrSplitPDate);
    $tvalue = $_[0];
    $pvalue = $_[1];

    print $tvalue;
    print $pvalue;
    @arrSplitTDate = split(/\//, $tvalue);
    $tday = $arrSplitTdate[1];
    $tmon = $arrSplitTdate[0];
    $tyear = $arrSplitTdate[2];

    print $tday . "\n";
    print $tmon . "\n";
    print $tyear . "\n";
}
Run Code Online (Sandbox Code Playgroud)

这是错误:

Global symbol "@arrSplitTdate" requires explicit package name at LargeLDAPSearch.pl line 173, <DATA> line 558.
Run Code Online (Sandbox Code Playgroud)

有人看到错误的原因吗?谢谢.

pil*_*row 6

您的camelCasing在变量声明和预期用途之间是不同的.

arrSplitTDatearrSplitTdate

  • 这就是我们"使用严格"的原因.因为替代方案是"为什么这个变量`undef`?我只是分配给它." (2认同)
  • @cquadrini This_is_also_why_we_use_underscores InSteadoFuglyCameLCasing. (2认同)