local と my - IT戦記

our 名前をソース上のスコープに限定. local 値をスタック上のスコープに限定. my 名前と値の両方をソース上のスコープに限定

local と my - IT戦記

で、やっとここのお話に戻ると
id:tokuhirom さんや 早川さんの仰っているスコープは
構文におけるスコープの事じゃないのかなぁと俺は理解してました。

$foo = "global";

sub func{
    print "$foo\n";
}

sub test{
################################## この関数のスコープ内限定で
    local $foo = "local";        # $foo の値を書き換えてますよ
    func();                      # 
##################################
}

func(); # global と出力されます
test(); # local と出力されます
func(); # global と出力されます


で、それが(コンピュータ上で)どうやって実行or実装してるのかのところで
はじめてダイナミックスコープとかの話が出てくるのかなぁと
よく分かってないので素っ頓狂なことを言ってたらごめんなさいごめんなさい><