HTML::TagCloud
del.icio.us / miyagawa 経由で見つけた CPAN モジュール HTML::TagCloud。Tag Cloud (はてなブックマークの右側に出てくるタグ一覧みたいなやつ) を生成する CPAN モジュールです。
出力はどんな感じかなと思って使ってみました。
#!/usr/local/bin/perl
use strict;
use HTML::TagCloud;
my $tags = [
{ tag => 'blog', count => 20},
{ tag => 'ajax', count => 10},
{ tag => 'mysql', count => 5},
{ tag => 'hatena', count => 12},
{ tag => 'bookmark', count => 30},
{ tag => 'rss', count => 1},
{ tag => 'atom', count => 2},
{ tag => 'misc', count => 10},
{ tag => 'javascript', count => 11},
{ tag => 'xml', count => 6},
{ tag => 'perl', count => 32},
];
my $cloud = HTML::TagCloud->new;
$cloud->add($_->{tag}, "http://b.hatena.ne.jp/naoya/$_->{tag}/", $_->{count})
for @$tags;
print $cloud->html_and_css(20);こんな感じのソースで出力された結果は、
<style>
span.tagcloud0 {font-size: 12px;}
span.tagcloud0 a {text-decoration: none;}
span.tagcloud1 {font-size: 13px;}
span.tagcloud1 a {text-decoration: none;}
span.tagcloud2 {font-size: 14px;}
span.tagcloud2 a {text-decoration: none;}
span.tagcloud3 {font-size: 15px;}
...
</style>
<span class="tagcloud11"><a href="http://b.hatena.ne.jp/naoya/ajax/">ajax</a></span>
<span class="tagcloud2"><a href="http://b.hatena.ne.jp/naoya/atom/">atom</a></span>
<span class="tagcloud17"><a href="http://b.hatena.ne.jp/naoya/blog/">blog</a></span>
...といった具合になります。ブラウザで表示すると、

こんな感じになりました。オリジナルのアプリケーションでタグを実装していて、そこに Tag Cloud を表示したいというときに使えそう。見た目をカスタマイズしたい場合は継承して css メソッドをオーバーライドすればよさげ。
このモジュールを使うにはタグの一覧と、それぞれのタグが何回使われたかというパラメータが必要です。と、いうことはブックマークでタグ一覧を取得する API を作るとすると、やはり利用回数の出力も一緒にするのは必須な感じですね。最終利用時刻もついでに付けてやれば、濃淡も一緒に表現できるしそっちも入れたいところ。