NAME¶
HTML::ElementGlob - Perl extension for managing HTML::Element based objects as a
single object.
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;
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.
REQUIRES¶
HTML::ElementSuper(3)
AUTHOR¶
Matthew P. Sisk, <
sisk@mojotoad.com>
COPYRIGHT¶
Copyright (c) 1998-2010 Matthew P. Sisk. All rights reserved. All wrongs
revenged. This program is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
SEE ALSO¶
HTML::Element(3), HTML::ElementSuper, HTML::ElementRaw,
HTML::Element::Table(3),
perl(1).