1
我具有以下树状结构,其中每个电平由单独的类表示:保存树状结构
Book ------ Page ------ Line
1 n 1 n
每个类具有保持其所有成员(E/G/Book::pages
一个属性,作为参考文献福地阵列),一些特定于电平特性(例如Book::author
)以及一些方法来添加/删除其成员。
现在我想保存/从一个单一的文件中的所有数据加载到/。这不会是一个关系数据库(最有可能YAML将被使用),所以基本上是我需要得到在某些时候是一样的东西:
my $book = {
author => "Fred Flinstone",
name => "My Favorite Stones",
pages => [
{
number => 1,
footer => "Dedicated to Wilma",
lines => [ ],
},
{
number => 2,
lines => [
{ text => "Preface", style => "h1" },
{ text => "This book is about my favorite stones:" },
{ text => "Marble" },
# ...
]
},
# ...
]
};
如果有一个智能对在图书方法知道所有成员类?或者每个班级应该实施其中的一部分,例如Line::save
返回类似{ text => "Marble" }
?
什么是实现这个正确方法是什么?我希望尽可能少的解决方案与实际数据相关。如果我决定明天什么添加Page::bookmarks
并要保存Bookmark
S作为呢?
哦,我使用的驼鹿,但不应该太大的差别。
可以序列并恢复与'Storable'模块祝福的对象。 – PSIAlt 2013-02-27 21:28:34