展開後に変数を代入すると?

$ をふくむ変数の値の代入が行なわれると、 次に値を取り出すメソッド [1] が呼ばれた際に、変数の再展開が行なわれます。

例えば

$config->{ key } = '$ml_home_dir/value';
という代入処理が行なわれると、次に
$config->{ another_key }
(キーはなんでもよい)メソッドが呼ばれた際に再評価されることになります。

内部構造: 変数展開

内部構造の話をすると、 まず %_fml_config に キーと値 の組が保存されます。 これは $dir/$file のような形式のままです。 get() はこのハッシュではなく %_fml_config_result の値を返しています。 このハッシュ中の値は $dir などが展開された後の値で、 /var/spool/ml/elena/file などとなっています。 この変数の値の展開は get() なりで呼ばれた時に始めて行なわれます。

Notes

[1]

perl の tie 操作

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml-devel/.
fml 4.0 project homepage is www.fml.org/fml/menu.ja.html.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.