[Tokyo.pm] local ties, summary

Shinya Hayakawa hayakawa @ flexsche.com
2002年 1月 16日 (水) 09:46:36 CST


早川です。
p5p ネタです。
#正月に書いたメールが草稿Boxに埋もれてました(^^;

local がセーブするのは変数でなく値である、
という基本をちゃんと理解できてなかったため
ちょっと新鮮に感じました。

    sub X::TIEHASH{bless{}}
    { local %x; tie %x, "X" } print tied %x ? "a" : "b";
の結果は "a"

    sub X::TIEHASH{bless{}}
    tie %x, "X"; { local %x; print tied %x ? "a" : "b" } 
の結果も "a"

だけど
    sub X::TIEHASH{bless{}}
    { local *x; tie %x, "X" } print tied %x ? "a" : "b";
の結果は "b"

型グロブはリファレンスをより一般化させた
変数の変数と考えることもできるでしょうか。

-- 
SH
hayakawa @ flexsche.com




Tokyo-pm メーリングリストの案内