5

@とで同じ変数名を宣言しています$:

@ask=(1..9);
$ask="insanity";
print ("Array @ask\n");
print ("Scalar $ask\n");

使用しないuse strictと正しく出力されますが、使用use strictするとコンパイルエラーが発生します。

これらの 2 つの変数は 2 つの異なるメモリ位置を参照していますか、それとも同じ変数ですか?

4

4 に答える 4

1

@ask$askは異なる変数%askであり、そのままであり、これを行うことはエラーではありません。しかしスタイルが悪い。

$ask[1]を使用して の 2 番目の要素を取得する場合など、それらを使用するとシジルが変化するため@ask、コードが読みにくくなり、use strict混乱したかどうかもわかりません。したがって、自分が何をしているのかわからない場合は、シジル以外の点で異なる名前を使用することをお勧めします。@asksしたがって、egとを使用できます$ask

于 2013-09-20T10:01:42.670 に答える