多くの標準的な本で、以下のようなループで my が使用されている多くのコードを見てきました。
タイプ1-
foreach my $mykey ( keys %myhash) {
......
}
また
while(my $line = <$filehandle> ) {
.....
}
ここでは、ハッシュのキーごと、または行ごとに変数を宣言しています。
C/C++/Java では、最初に変数を宣言してから使用していました。したがって、そのポリシーに従えば、上記のコードは次のようになります。
タイプ 2-
my $mykey;
foreach $mykey (keys %myhash) {
....
}
また
my $line;
while($line = <$filehandle> ) {
....
}
コンテキストに従って、変数に適用できる操作の種類とその動作を決定するため、コードの実行が高速化されます(私は思います)。
しかし、私は TYPE 1 コードの大部分が Perl であるのを見てきました。だから私はいくつかのperlの概念が欠けていると思います. 誰か光を当ててください。
スコープに一度宣言/関連付けられ、その後のみインクリメントされると言う場合は、いくつかのドキュメントを提供してください。私はどこにもそれを得ることができませんでした。どちらの場合も変数のスコープが異なることを理解しています。
@ http://perldoc.perl.org/perlsub.html#Private-Variables-via-my%28%29-- my 演算子は、条件付き (if/unless/ elsif/else)、ループ (for/foreach/while/until/continue)、サブルーチン、eval、または do/require/use'd ファイル。
my will を使用した変数の関連付けは、各ステップで行われますか?