IMO, this is definitely an area where you want to use objects. They will pay off many times over for nontrivial systems when you're adding behaviors that need to work on different types of entities.

You can do the object relationship/serialization part with SPOPS. I think it's very appropriate here because it already dynamically creates persistence classes based on metadata. For instance, there's a module allowing you to build the object's properties at runtime based on the fields in a DBI table.

Further, it dynamically creates relationships among objects from metadata -- a group has a leader(person), a book has multiple writers(persons), etc.

Most people use it for serializing objects to/from DBI datasources but you don't have to -- creating a new serialization class isn't too difficult. (And then one of the benefits will be if you ever do move to a DBI datasource it won't be so painful.)

I'm a little harried right now, but if you're interested you might want to hop over to the openinteract-dev mailing list and start floating ideas.

Chris
M-x auto-bs-mode


In reply to Re: metadata confusion for new perl CMS by lachoy
in thread metadata confusion for new perl CMS by jhanna

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.