« use Jcode; | メイン | 環境変数 »

2005年10月12日

ローカル変数 my と local

ローカル変数 my と local があるがこの違い

表面上は使い方に違いはないが、処理のされ方に違いあり。
local ダイナミックスコープ変数 と呼びます。そして、local を使って変数を宣言することをダイナミックスコープ宣言と呼びます。

my を使って定義された変数は、レキシカルスコープ変数 と呼びます。そして、my を使って変数を宣言することをレキシカルスコープ宣言と呼びます。

local では、変数名は別々に保持されません。言い換えると、local は、グローバル変数に一時的な値を付けるといえます。Perl 内部では、それぞれの $var は、同じ変数として認識しており、コードの場所によって、値を付け替えるという作業をしています。そしてどこからその変数が呼び出されたかによって、適用する値が異なってくるのです。それがダイナミックスコープと呼ばれるゆえんです。

だそうです。
myはperl5から使えるそです。メモリの使い方かな?

投稿者 muuming : 2005年10月12日 19:39

コメント

コメントしてください




保存しますか?