2009年4月3日

ハッシュの値へのリファレンスを取得しました

my $hash_ref = { hogehoge => 1 };
my $scalar_ref = ¥($hash_ref->{hogehoge});
$hash_ref->{hogehoge} = 2;
print $$scalar_ref, "¥n";
初めは取れるのか?と思ってたのだが、意外とあっさり。

本当は、、
my $object = Class->new;
my $scalar_ref = ¥($object->hogehoge);
$object->hogehoge(2);
print $$scalar_ref, "¥n";
みたいに、アクセサーから取得したかったのだけど、どうやら、returnの時に値のコピーが発生しているようで、取得できなかった。。。

まぁ、なんで、こんな事がやりたかったかと言うと、DB上にファイルを保存する事になって、そのファイルの内容を取り出す関係で、極力、変数のコピーは避けたかったので、、、という説明じゃわからないね。まぁ、そんな感じの時に必要だったのよ。

簡単に説明すれば、DBIx::Class::InflateColumn::Fileしたかったの。

IO::Fileに、変数の参照渡して、スカラー変数をファイルみたいに、open したかった。

0 件のコメント: