古い記事
ランダムジャンプ
新しい記事
HTML::ColorKeywords
<http://ta2o.net/tools/pm/src/HTML-ColorKeywords-0.1.tar.gz>
<http://ta2o.net/tools/pm/src/> (←最新版を調べるときはこっち)

キーワード(複数)とマッチする箇所を span + background-color で
ハイライトするPerlモジュールを作ってみました。
そもそも、Yasazon や AsamasiBookSearch で使ってたやつなのです。
このたび練習がてらPerl Module化[2006-02-03-3]してみました。

↓こんな感じでハイライト。
図
なお、色はYahoo!のWeb検索結果のキーワードの色(10色)に準拠。

まあ、車輪の再発明でしたけどね!(いいんです、練習だから…)
こういう用途には HTML::Highlight を使うと良いでしょう。
(ref. HTML::Highlight - A module to highlight words or patterns
 in HTML documents - search.cpan.org
 <http://search.cpan.org/~tripie/HTML-Highlight-0.20/>)

HTML::Highlight の使い方:
use HTML::Highlight;
my $doc = qq{<div><text tag="value">天気予報</text>
今日はいい天気でしょう。晴れでした。六本木ヒルズでランチ。</div>};
my $hl = new HTML::Highlight (
        words => [ '六本木', '天気', 'ランチ'],
        colors => [ 'red', 'green' ],
        debug => 0
);
my $hldoc = $hl->highlight($doc);
print $hldoc;
Yahoo!検索結果カラー(10色)を使うには:
use HTML::Highlight;
my $doc = qq{ABCDEFGHIJKLMNOPQRSTUVWXYZ};
my $hl = new HTML::Highlight (
     words => ['A','B','C','D','E','F','G','H','I','J','K','L'],
     colors => ["#ffff66", "#A0ffff", "#99ff99", "#ff9999", "#ff66ff",
                "#880000", "#00aa00", "#886800", "#004699", "#990099"],
);
print $hl->highlight($doc);

ついでに、HTML::ColorKeywords の使い方 (SYNOPSIS):
use HTML::ColorKeywords;
{
    my $c = HTML::ColorKeywords->new(keys => ['abc','a','b']);
    my $s = qq(_<a href="/">ac</a>_bc_<b>abc</b>_);
    $c->do(string => \$s);
    print "$s\n";
}
{
    my $c = HTML::ColorKeywords->new();
    my $s = "acebecddcbcaed";
    my @k = ('ac', 'bc');
    $c->do(keys => \@k, string => \$s);
    print "$s\n";
}
{
    my $c = HTML::ColorKeywords->new(colors => ['red', 'blue']);
    my $s = "edhjbicopan";
    $c->do(keys => ['a','b','c'], string => \$s);
    print "$s\n";
}
デフォルトがYahoo!検索結果カラーってことくらいしか利点がないけどな。
この記事に言及しているこのブログ内の記事