HTML::TreeBuilder::Selectがウマーな件
以前、id:naoyaさんのd:id:naoya:20061006:1160134639にて「HTML::TreeBuilder + CSSセレクタがいい感じな件」ってエントリがあったんですが、まさにそのコンボとなるモジュールがリリースされてました。
例えばtext-vimcolorの出力の中でsynIdentifier扱いされるブロックで変数と思しき物だけvar要素に置換して、出力するなら下記みたいなソースになる。
#!/usr/bin/perl use strict; use warnings; use HTML::TreeBuilder::Select; my $html; read(STDIN, $html, -s *STDIN); my $tree = HTML::TreeBuilder::Select->new; $tree->parse($html); for my $element (grep { join("", @{$_->content}) =~ /^\$/ } $tree->select("span.synIdentifier")) { $element->tag("var"); $element->attr("class", undef); } print $tree->select("pre")->as_HTML;
最近perl書いてないので良く分からなくなってきたよ。