Class::Data::Accessor

[Class A]
A->Data = A
[Class B inherit A]
B->Data = A
[create new A object : a]
A->Data = A
$a->Data = A
B->Data = A
[input object a->Data = a]
A->Data = A
$a->Data = a
B->Data = A
[create new B object : b]
A->Data = A
$a->Data = a
B->Data = A
$b->Data = A
[B->data = B]
A->Data = A
$a->Data = a
B->Data = B
$b->Data = B
[input object b->Data = b]
A->Data = A
$a->Data = a
B->Data = B
$b->Data = b