タグ

2008年1月10日のブックマーク (2件)

  • local と my - IT戦記

    すっきりした>< - 宇宙行きたい このエントリの our 名前をスコープに限定. local 値をスコープに限定. my 名前と値の両方をスコープに限定 は、ものすごく分かりやすいし正しいと思うんですけど、たぶん昔の僕だったら理解出来なかったかもしれません>< our 名前をソース上のスコープに限定. local 値をスタック上のスコープに限定. my 名前と値の両方をソース上のスコープに限定 なら、理解しやすいと思います>< 今でも local 宣言のあるスコープ内で関数呼出しがあると混乱するの僕なのです>< 追記 弾さんが反応してるので、追記 404 Blog Not Found:perl - myとourとscopeと えっと 僕の「ソース上のスコープ」という言葉が良くなかったです><ごめんなさい そういう意味で言ったわけではなくて、「ソース上の(なんらかの記述の位置で決まる範囲の

    local と my - IT戦記
    kits
    kits 2008/01/10
    ourとmyはlexical / 引用箇所は、ソース上の何らかの範囲であるなら{ }を抜けても$Foo::barの値が残っていることは「ありえない」、という意図と推測。/ 「名前の省略をソース上のスコープに限定」だろうか。
  • すっきりした>< - YoshioriのBlog

    id:tokuhirom に Perl の local と my と our を凄く簡潔に分かり易い言葉で教えてもらいました。 our 名前をスコープに限定. local 値をスコープに限定. my 名前と値の両方をスコープに限定 追記 元ネタは早川さんだそうです>< →PowerPoint プレゼンテーション とくひろむーさん、早川さん、ありがとうございます。 で、ついでに実践してみました。 $foo = "global"; sub func{ print "func $foo\n"; } sub test1{ my $foo = "my"; func(); } sub test2{ local $foo = "local"; func(); } test1(); print "after my $foo\n"; test2(); print "after local $foo\n";

    すっきりした>< - YoshioriのBlog
    kits
    kits 2008/01/10
    our: package変数のpackage名を省略できる。local: package変数の値を一時的に入れ換える。my: package変数ではない、block内だけで使える変数。…と解釈してます。