2010-04-17から1日間の記事一覧

クロージャーとグロブ割り当てを使用したサブルーチン

前回、前々回の日記でシンボリックテーブルとグロブを紹介したので、クロージャーとグロブ割り当てを利用したサブルーチンの紹介をしたいと思います。 レキシカル変数を不老不死にするクロージャー Perlではグローバル変数とレキシカル変数が存在しています…

main::test_methodというグロブには自分自身がどこにいるかを調べるために、自分自身へのリファレンスを持っているのですが、その情報を*Foo::test_methodに置き換えているわけです。*1

実際にはグロブを丸ごと違うグロブを参照するような処理は行いません*1。グロブの一部(大抵はコードリファレンス)に対してだけこのような処理を行います。 まとめ このグロブ割り当ての原理を利用したサブルーチンの記述は、CPANモジュールなどでよく見かけ…

シンボルテーブルとグロブ(2)

おさらい シンボルテーブルは普通のPerlハッシュで実装されています。 Perlのhogeという名前の変数には$hoge, @hoge, %hoge, &hoge, ファイルハンドルのhoge, ディレクトリハンドルのhogeなどがあります。 これらのhogeは物理的にはバラバラの場所に離れてい…