Well, you are aiming for some separation between the HTML and the data. What you are doing is basically what Paul Lucas' "HTML_Tree" Perl module does. He took it off CPAN becuase another module like that already existed.

From my perspective, you are still putting programming the backseat and HTML in the front-seat. Instead of taking control of the situation and injecting data into the HTML via DOM or one of Perl's many push-style solutions, you are still trying to program the HTML via a simple correspondence table between hash keys and html tags.

So, what you have is putting the power in the middle. Blatant pull-style systems like Mason and TT have a lot of power because they allow programming in HTML. Blatan push-style systems like my own HTML::Seamstress have a lot of power because they prohibit programming in HTML, but require Perl for all programming.

What you have is something with limited programing power from either perspective. Which may be fine, but it might not be. Also see URI Guttman's Template::Simple for another attempt to have automatic templating based on Perl data structures. As well as Petal for Perl's tal-inspired templating.



The mantra of every experienced web application developer is the same: thou shalt separate business logic from display. Ironically, almost all template engines allow violation of this separation principle, which is the very impetus for HTML template engine development.

-- Terence Parr, "Enforcing Strict Model View Separation in Template Engines"


In reply to Re: RFC : Abstraction Markup by metaperl
in thread RFC : Abstraction Markup by simonodell

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.