logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

HTML::ElementGlob - Perl extension for managing HTML::Element based objects as a single object.

Author

       Matthew P. Sisk, <sisk@mojotoad.com>

Description

       HTML::ElementGlob is a managing object for multiple HTML::Element(3) style elements.  The children of the
       glob element retain their original parental elements and have no knowledge of the glob that manipulates
       them.  All methods that do not start with 'glob_' will be passed, sequentially, to all elements contained
       within the glob element.  Methods starting with 'glob_' will operate on the glob itself, rather than
       being passed to its foster children.

       For example, $eglob->attr(size => 3) will invoke attr(size => 3) on all children contained by $eglob.
       $eglob->glob_attr(size => 3), on the other hand, will set the attr attribute on the glob itself.

       The tag type passed to HTML::Element::Glob is largely irrrelevant as far as how methods are passed to
       children.  However, if you choose to invoke $eglob->as_HTML(), you might want to pick a tag that would
       sensibly contain the globbed children for debugging or display purposes.

       The 'glob_*' methods that operate on the glob itself are limited to those available in an
       HTML::Element(3).  All other methods get passed blindly to the globbed children, which can be enhanced
       elements with arbitrary methods, such as HTML::ElementSuper(3).

       Element globs can contain other element globs.  In such cases, the plain methods will cascade down to the
       leaf children.  'glob_*' methods, of course, will not be propogated to children globs.  You will have to
       rely on glob_content() to access those glob children and access their 'glob_*' methods directly.

Name

       HTML::ElementGlob - Perl extension for managing HTML::Element based objects as a single object.

Requires

HTML::ElementSuper(3)

See Also

HTML::Element(3), HTML::ElementSuper, HTML::ElementRaw, HTML::Element::Table(3), perl(1).

perl v5.40.1                                       2025-03-27                             HTML::ElementGlob(3pm)

Synopsis

         use HTML::ElementGlob;
         $element_a = new HTML::Element 'font', color => 'red';
         $element_b = new HTML::Element 'font', color => 'blue';
         $element_a->push_content('red');
         $element_b->push_content('blue');

         $p = new HTML::Element 'p';
         $p->push_content($element_a, ' and ', $element_b, ' boo hoo hoo');

         # Tag type of the glob is not really relevant unless
         # you plan on seeing the glob as_HTML()
         $eglob = new HTML::ElementGlob 'p';
         $eglob->glob_push_content($element_a, $element_b);
         # Alter both elements at once
         $eglob->attr(size => 5);

         # They still belong to their original parent
         print $p->as_HTML;

See Also