ROUTE 3390

備忘録的な用途で書いていますが、どなたかの役に立つ事があれば嬉しいです。

local変数について改めて理解する

Perlにはglobal変数、local変数、my変数があります。

私はあんまりlocal変数って使う機会が無くて、なんとなくしか理解していませんでした。

my変数が「ブロック内がスコープの変数」というのに対して、local変数は「ブロック内で呼んでる関数なんかスコープになる変数」と覚えていました。

実は、上司と話している時にlocal変数はどんな変数か聞かれました。私は上記のように答えると、「結果としてはあっている。けれど、どうしてそうなるかを説明できる?」と言われ答えられませんでした。

基本を理解していない自分が恥ずかしかったので、戒めのために記します。

local変数は「ブロック内を実行している間だけglobal変数を書き換える変数です。」

だからブロック内で呼んだ関数もスコープになる(みえる)んですね。