ディスパッチテーブル
別に subroutine reference を使うこともないような。
my %colors = ( black => '000000', red => 'FF0000', green => '00FF00', blue => '0000FF', white => 'FFFFFF', ); sub coloring { my ($color, $data) = @_; if (exists $colors{$color}) { return qq{<font color="#$colors{$color}">$data</font>}; } return; }
場合によっては、subroutine reference の方がいいとは思うけど、この例の場合は単純に色の名前と対応するデータだけをテーブルに入れたほうが分かりやすいんじゃないかなぁ。