今日のCPANモジュール(跡地)

宣伝と注意書き

このサイトが元になったCPANモジュールガイドという本を書きました。

Acmeモジュールはどれもとりあげていません(笑)

ただし、Perlほどジョークモジュールが発達しているのもないんじゃないかと思い、Acmeというものがあることは知ってほしかったので、サンプルコードでいくつかのAcmeモジュールを登場させています。

2007-04-01

use Acme::Bleach;

エイプリルフールということで、CPAN のジョークモジュールをいくつか紹介。

CPAN には Acme:: というジョーク専用の名前空間があります。この名前空間が生まれたのは 2001 年。提唱したのは Perl 界の重鎮 Damian で、彼が Bleach というジョークモジュールを作ったときの話らしいです。

最初は Bleach という名前でアップしたのですが、「ジョークモジュールがいろいろ混ざっていくのはいかがなもんかね。ジョーク系は Acme:: という名前空間に入れるようにしませんか」というような感じで提唱。Bleach も Acme::Bleach として再 UP されました。

Acme は美味しんぼで言う『究極』とか『至高』とかいうニュアンスと、思ってたのですが、ルーニー・テューンズのロードランナーの中に出てくる、コヨーテに怪しい商品を売る Acme 社 から来てるそうです(このへん参照)。 メールで教えてもらいました。すみません。

単純に Joke:: とかじゃないのがセンスあるなあと思います。

Acme::Bleach は、

use Acme::Bleach;

print "Hello.";

みたいに普通に use Acme::Bleach; した後続けて 好きなコードを書いた bleach.pl を作り、実行すると、bleach.pl ファイルそのものが"漂白"されます。

コードがすべて(バイトにされたのち)タブとスペースと改行で表現されます。use Acme::Bleach; はデコードとエンコード両方の役割を持っており、このまま perl bleach.pl を実行するとちゃんと Hello. を表示します。

とまあ、こうして Acme:: 名前空間ができたおかげで、世界の Perl ハッカーは心置きなく思いついたジョークモジュールを次々 CPAN に投入できるようになったのでした。めでたしめでたし♪

日本人にもわかりやすい Acme:: 系をいくつか紹介してみます。

Acme::DoubleHelix

Double helix = DNA の 二重らせんです。Acme::Bleach と同じようなモジュールですが、先ほどの Hello. を出力するやつがこうなります。

use Acme::DoubleHelix;

 CG
T--A
A---T
A----T
 C----G
  T----A
   A---T
    G--C
     AT
     CG
    C--G
   G---C
  G----C
 C----G
A----T
C---G
G--C
 TA
 CG
C--G
A---T
A----T

# 以下続く

こういうのがお好きなら Acme::EyeDrops が気に入ると思います。

Acme::MorningMusume

モーニング娘モジュール。1メンバー1モジュールになってて、年齢とかがわかる便利?モジュール。

Sex

こいつは、Acme:: ができる前に投入されたジョークモジュール(2000年)で、まだその名前空間のまま生き残ってるやつですね。2つのモジュールを Sex させます。実行時にあえぎます(笑)

Acme::Hoge

foo や bar を print しようとしても日本風の hoge とか fuga になってしまう、俺は日本男児だー向け?モジュール。

Acme::Kensiro

ケンシロウ進数 に基づき「あたたたたた」を出力。くだらない・・・(← Acme:: 系への最高のほめことばです)

Acme::Hyde

こちらは、ラルクアンシエルの Hyde の身長を 1 とする新たな単位 hyde の計算用モジュール。。

Acme::Lou

これはぼくの作品です。テキストをルー大柴風に変換します。ルー語変換 で作ったものをモジュール化したものです。結構まじめに組んだ苦心作で、思い出深いモジュールです。

SEE ALSO

その他の Acme:: モジュール, Acme:: 名前空間誕生秘話