トップ «前の日記(■2005-09-09) 最新 次の日記(■2005-09-25)» 編集

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|03|08|
2018|03|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2005-09-12

* [雑感] 先行き暗しB!

 仕事しながら夜中に選挙結果をみて暗澹たる思いに。うわぉ 負け組にはつらい世の中になりそうな予感。

* [Perl][メモ] Class::Accessor::AutoLinkB!

  くさした気分を紛らわすために、Perlで楽々アクセサ〜3の2を試す…… このモジュールではオブジェクト毎に最初に配列リファレンスとハッシュリファレンスでアクセサを定義します。これ以外に方法思いつきません。 あー、あってるのかどうか、眠くてよくわかりません。

 package MyClass;
 use base qw(Class::Accessor::AutoLink);
 my $def = [
   'foo',
   {bar => [
     'baz',
     {hoge => ['hoge']},
   ]},
 ];
 
 __PACKAGE__->init_accessor($def); 
 
 sub new {
     my $self  = bless {}, shift;
 }
  
 package main;
 
 my $obj = MyClass->new();
 $obj->foo = 1;
 $obj->bar->baz = 2;
 $obj->bar->hoge->hoge = 10;

  AUTOLOADを繰り返さない方法(AUTOLOAD内で関数をevalする)のは弾さんがお書きになられてます。

* [Perl][メモ] Class::Accessor::AutoLinkその2B!

  Class::Accessor::AutoLinkのアクセサ定義の方法を変更しました。下記の通り、普通にハッシュリファレンスを渡します。値がデフォルトに。もちろん、blessするハッシュリファレンスで値を上書き可能。

 package MyClass;
 
 use base qw(Class::Accessor::AutoLink);
 
 my $def = {
   foo => 1,
   bar => {
     baz => 2,
     hoge => {hoe => 3},
   },
 };
 
 MyClass->init_accessor($def); # init
 
 sub new {
     my $class = shift;
     my $self  = shift;
     bless $self, $class;
 }
  
 package main;
 
 my $obj = MyClass->new({foo => 0});
[]