myとlocalについて自分なりに理解していること

Perlを独学で勉強している私ですが、初期のころはmyとlocalって何が違うのかさっぱりでしたが、最近はいろいろ本を読んで理解してきたと自分では思ってます。

独学し始めの当時、「初めてのPerl 第3版」の75ページの

もしタイムマシンに乗って1986年に戻ることができたら、Larryに会って、localの代わりに"save"という名前を付けるように忠告するだろう

という一文は全く理解できなかった。

業界がSIerで仕事で使っている言語はJavaで、C言語とか他の言語をやったことのない人間からすると、変数のスコープの感覚はmyは理解し易いく、変数のスコープのやり方に他の方法があるなんて想像もしていなかった。

だから、自分の場合、理解するのに時間がかかった。

でも、「Effective Perl」を読んで、ある程度理解できた。しかしmyとlocalの挙動を全て理解しているわけではないが、悩んでいるわけでもない。

ってなわけで、自分なりに理解していることを書きます。

  • myの場合、スコープが異なっていると変数の名前は一緒だけど、実際は違うモノ。
  • localの場合、スコープが異なっていても変数の名前は一緒だと、同じモノ。

localは、同じ変数名だとスコープが異なっていても同じ変数のことを意味しているので、格納してある値を一時的にどっか別の場所(?)に保存(save?)しておいて、同じ変数を使いまわしているって感じですかね。

だから、localじゃなくてsaveという名前のほうがいいと言っていたんだと、今は理解しています。

もし、ご意見ございましたら、コメントくださいませ。

初めてのPerl
初めてのPerl
posted with amazlet on 08.03.16
ランダル・L. シュワルツ トム フェニックス Randal L. Schwartz Tom Phoenix 近藤 嘉雪
オライリージャパン (2003/05)
売り上げランキング: 34777
おすすめ度の平均: 4.5
5 定番書
5 初心者も持っておきたい一冊
5 CGI言語としてのPerl

Effective Perl (ASCII Addison Wesley Programming Series)
ジョセフ・N. ホール ランドル・L. シュワォーツ Joseph N. Hall Randal L. Schwartz 吉川 邦夫
アスキー (1999/03)
売り上げランキング: 124267
おすすめ度の平均: 5.0
5 C互換でなく、perlらしい書き方をしたい人に
5 perl語を学ぶ
5 perl語を学ぶ