2012-04-05 12 views
0

文字列を解析して配列に配置し、新しい変数に配列コンポーネントを割り当てようとしています。私はこれをコード内で全く同じ方法で行っていますが、動作しますが、今は失敗してしまい、なぜ私には何の手がかりもありません。私はそれが何か単純だと思うし、私はそれを見るには近すぎる。Explicit Package Error in 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"; 
} 

これはエラーです:

Global symbol "@arrSplitTdate" requires explicit package name at LargeLDAPSearch.pl line 173, <DATA> line 558. 

誰もが、エラーの理由を参照してください?ありがとうございました。

+3

FWIWあなたは、単に(一時的に使用)アレイとをスキップすることができます: '私の($ TMON、$のtday、$のtyear)=スプリット(/ \ //、$のtvalue);' – pilcrow

+0

@pilcrow、そのチップをありがとう。私のコードを非常にクリーンアップします。 – cquadrini

+1

おっと、なぜdownvotes?私はOPが実際には「厳密に使う」ことを知っているので、+1で相殺するつもりです。これはここの周りの多くの「基本的な」perl質問ではまれで貴重なものです。 – pilcrow

答えて

6

あなたのラクシーケーシングは、変数の宣言と意図された使用の間で異なります。

arrSplitTDatearrSplitTdate

+0

HAHAHA !!!!ありがとうございました!!私はそれがあまりにも長くそれを見ていたので、私はちょうど見ることができなかったことはそれほど些細なものであることを知っていた。ありがとうございました。 – cquadrini

+2

これが私たちが '厳密に使う '理由です。代替は "なぜこの変数がundefであるのですか?私はそれに割り当てました。" – cjm

+2

@cquadrini This_is_also_why_we_use_underscores InSteadoFuglyCameLCasing。 – tchrist