燈明ブログ

現状は小池啓仁の応援ブログ

tie関数とは

説明するのが大変なので、どうしようかな・・・と思っていたら、以下のページを見つけました。

ようは、タイ変数を宣言したり、参照したり、代入したり・・・。
すると、裏で処理が動き、オブジェクトをコンストラクトしたり、とある処理結果が参照できたり、代入したものに対応したものを格納出来たりする。
データベースでのトリガーのようなものかな、たぶん。

tie関数の使い方

    tie タイ変数, クラス名, コンストラクタの引数リスト 

ちなみに、リターン値はオブジェクトが返る。後からtied関数で取得することも出来る。

tie関数使用例ソース

use Tie::Expression;
tie my %expression, 'Tie::Expression';
print "PI = $expression{ 4 * atan2(1,1) }.\n";
http://blog.livedoor.jp/dankogai/archives/51074461.html

tieするクラス例ソース

package Tie::Expression;
use warnings;
use strict;
our $VERSION = sprintf "%d.%02d", q$Revision: 0.1 $ =~ /(\d+)/g;
sub TIEHASH($) { bless \eval { my $scalar }, shift }
sub FETCH($$) { $_[1] }
1;
http://blog.livedoor.jp/dankogai/archives/51074461.html

タイ変数を宣言する時に指定する(tieする)クラスには、以下のメソッド名のメソッドを用意する。


以下の4種類のタイ変数があるらしい。


尚、詳しくは、ラクダ本を参照のこと。