具体的には以下のテストにパスするようにしたい。 $tree->implicit_tags(0); がそれっぽい気がするのだけど、うまくいかない・・・。
実際にやりたいことまではあともうワンステップあり、 HTML 中の 'div.blah' 以下のノードツリーはのぞいた HTML 部分が欲しいので、 HTML::Selector::XPath + HTML::TreeBuilder::XPath で該当ノードツリーを指定したのち削除してしまって、残った部分を as_HTML('') でとってくれば楽ちんだな、と思ったのだけど、 タグをくっつけられてしまうのでその手が使えず・・・という次第。使い方が間違ってるのか、見当違いのメソッドを使ってしまっているのか。困った。
追記
Web::Scraper のソースを読んだら、 __get_value() のなかで
my $html = $node->as_XML; $html =~ s!^<.*?>!!; $html =~ s!\s*</\w+>\n*$!!; return $html;
などとやっていたので、どうやら ... は必ずくっついてしまって回避できないのかなぁ。これにならって自分で消すしかなさそう。