blessの対象
いろんなところに「オブジェクトとはblessされたリファレンス」と書かれているが,Effective Perl (ASCII Addison Wesley Programming Series)では「bless演算子は引数としてリファレンスを受け取るけれども,そのリファレンスをblessしているのではない.」と書かれている
ふーむ.
プログラミングPerl 改訂版(第2版)にはこう書かれている.
コンストラクタは,単なるサブルーチンで,クラス(一般には,コンストラクタが定義されているクラス)にblessされた「物」へのリファレンスを返す.コンストラクタは組み込みのbless関数を使ってこれを行う.bless関数は,「物」に対して特定のクラスに所属するという印を付ける.
プログラミングPerl 改訂版(第2版) P.332
やはりプログラミングPerl第3版(プログラミングPerl〈VOLUME1〉,プログラミングPerl〈VOLUME2〉
)も買った方がいいような気がする.違いがあるなら見てみたい
perlobjには「An Object is Simply a Reference」とある.「オブジェクトは単なるリファレンスである」だろうか.blessの動作はどうあれblessされた物へのリファレンスを返すことを考えればリファレンスそのもの(違う)だろう.
ズバリの絵があった.オブジェクト指向PerlマスタコースのP.109,110.なるほど.やはりリファレンスではなくてリファレンスが指す「モノがbless」されてオブジェクトになる.あくまでリファレンスはリファレンス.refでの区別はわかりやすいかもしれない