--- /dev/null
+package HTML::Tags;
+
+use strict;
+use warnings FATAL => 'all';
+use XML::Tags ();
+
+my @HTML_TAGS = qw(
+ h1 h2 h3 h4 h5 h6 p br hr ol ul li dl dt dd menu code var strong em tt
+ u i b blockquote pre img a address cite samp dfn html head base body
+ link nextid title meta kbd start_html end_html input select option
+ comment charset escapehtml div table caption th td tr tr sup sub
+ strike applet param nobr embed basefont style span layer ilayer font
+ frameset frame script small big area map abbr acronym bdo col colgroup
+ del fieldset iframe ins label legend noframes noscript object optgroup
+ q thead tbody tfoot blink fontsize center textfield textarea filefield
+ password_field hidden checkbox checkbox_group submit reset defaults
+ radio_group popup_menu button autoescape scrolling_list image_button
+ start_form end_form startform endform start_multipart_form
+ end_multipart_form isindex tmpfilename uploadinfo url_encoded
+ multipart form canvas
+);
+
+sub import {
+ my ($class, @rest) = @_;
+ my $opts = ref($rest[0]) eq 'HASH' ? shift(@rest) : {};
+ ($opts->{into_level}||=1)++;
+ XML::Tags->import($opts, @HTML_TAGS, @rest);
+}
+
+1;
use strict;
use warnings FATAL => 'all';
+use File::Glob ();
+
+
+
my $IN_SCOPE = 0;
sub import {
my $opts = shift(@args) if ref($args[0]) eq 'HASH';
my $target = $class->_find_target(0, $opts);
my @tags = $class->_find_tags(@args);
+ $class->_setup_glob_override;
my $unex = $class->_export_tags_into($target => @tags);
$class->_install_unexporter($unex);
$IN_SCOPE = 1;
*CORE::GLOBAL::glob = sub {
for ($_[0]) {
# unless it smells like </foo> or <foo bar="baz">
- return CORE::glob($_[0]) unless (/^\/\w+$/ || /^\w+\s+\w+="/);
+ return File::Glob::glob($_[0]) unless (/^\/\w+$/ || /^\w+\s+\w+="/);
}
return '<'.$_[0].'>';
};
no strict 'refs';
tie *{"${into}::${tag}"}, 'XML::Tags::TIEHANDLE', "<${tag}>";
}
- my $orig = \&CORE::GLOBAL::glob || sub { CORE::glob($_[0]) };
- {
- no warnings 'redefine';
- *CORE::GLOBAL::glob = sub { '<'.$_[0].'>' };
- }
return sub {
foreach my $tag (@tags) {
no strict 'refs';
use XML::Tags qw(bar);
</bar>;
}
+
+ sub quux {
+ use HTML::Tags;
+ <html>, <body id="spoon">, "YAY", </body>, </html>;
+ }
}
is(
'</bar>',
'close tag ok'
);
+
+is(
+ join('', Foo::quux),
+ '<html><body id="spoon">YAY</body></html>',
+ 'HTML tags ok'
+);