The following module was proposed for inclusion in the Module List: modid: HTML::Native DSLIP: RdpOg description: HTML via native Perl data structures userid: MCB (Michael Brown) chapterid: 15 (World_Wide_Web_HTML_HTTP_CGI) communities:
similar: HTML::Tree Template HTML::Mason rationale: I chose the name HTML::Native since the idea is to provide a Perl-native way to manipulate an HTML document tree. (From the module documentation:) Perl has a rich, natural, and extremely efficient syntax for manipulating tree-like data structures. HTML::Native allows you to use this syntax to manipulate an HTML document tree. For example: # Mark the link to the current page with class="active" foreach my $link ( @$navbar ) { $link->{class}->{active} = ( $link->{href} eq $current ); } # Wrap any <table> elements inside a <div> element foreach my $elem ( @$list ) { $elem = HTML::Native->new ( div => { class => "results" }, $elem ) if is_html_element ( $elem, "table" ); } HTML::Native is an alternative to mixed-language modules such as the Template Toolkit and HTML::Mason, and to method-based modules such as HTML::Tree. HTML::Native aims to provide the most naturally Perlish way of generating and manipulating an HTML document tree. Compare the code required to conditionally add an attribute class="fatal" to a <div> element based on the variable $fatal: Template Toolkit: <div class="error[% $fatal ? " fatal" : "" %]"> HTML::Mason: <div class="error<% $fatal ? " fatal": "" %>"> HTML::Tree: $div->attr ( "class", $div->attr ( "class" )." fatal" ) if $fatal; HTML::Native (this module): $div->{class}->{fatal} = $fatal; I suspect that I am not the only person who might find this useful, so I would like to share it on CPAN. enteredby: MCB (Michael Brown) enteredon: Wed Jun 8 17:18:18 2011 GMT The resulting entry would be: HTML:: ::Native RdpOg HTML via native Perl data structures MCB Thanks for registering, -- The PAUSE PS: The following links are only valid for module list maintainers: Registration form with editing capabilities: https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=fe800000_5f1953e265cb01d7&SUBMIT_pause99_add_mod_preview=1 Immediate (one click) registration: https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=fe800000_5f1953e265cb01d7&SUBMIT_pause99_add_mod_insertit=1 Peek at the current permissions: https://pause.perl.org/pause/authenquery?pause99_peek_perms_by=me&pause99_peek_perms_query=HTML%3A%3ANative