モダンPerlの世界へようこそ

第5回 Pod::Perldoc:ドキュメントはどこに?

この記事を読むのに必要な時間:およそ 3.5 分

perldocコマンドも進化しています

Perl 5は,その黎明期から常にドキュメントを重視してきました。

ドキュメントをHTMLとUNIXのman形式に整形するスクリプトは1994年の誕生当時から添付されてきましたし,1996年にリリースされたPerl 5.002では,ドキュメントをテキストに整形するためのPod::Textや,manコマンドがない環境でもドキュメントを閲覧しやすくするためにperldocというコマンドが導入されました。

このコマンドを使うと,先にも紹介したコアドキュメントだけでなく,モジュールやプラグマのドキュメント部分のみを抽出して画面に表示することもできるようになりますし,⁠-m」オプションを使えばソースコードそのものを確認することもできる――ということくらいは,すでにおなじみのことでしょう。

翌1997年にリリースされた5.004では,Pod::HTMLというモジュールが導入されたほか,perldocコマンドが進化して,⁠-f」オプションで組み込み関数のマニュアルも表示できるようになりました(これは,実際にはperlfuncというコアドキュメントの一部を表示する機能です⁠⁠。また,翌1998年のPerl 5.005ではさらに「-q」オプションが追加され,Perl FAQの見出しから関連語を検索できるようになっています※4⁠。

※4

たとえば,⁠perldoc -q install」といったコマンドを実行すると,perlfaq3に記載されている「システムにインストールされているモジュールを知りたい(How do I find which modules are installed on my system?⁠⁠」という項目や,perlfaq8の「CPANからモジュールをインストールするやり方は?(How do I install a module from CPAN⁠⁠」といった項目が表示されます。日本人にとってはあまり使いでのない機能かもしれませんが,よくある質問ならほかのリソースを調べるまでもないわけです。

2000年に登場したPerl 5.6系列では,Podまわりのモジュールが再編されて,Pod::Parserpodlatorsといったパッケージがコアに入りましたし,2003年リリースの5.8.1ではperldocコマンドが一新され,あらたにPod::Perldocというモジュールがコアに登録されました(このときにもperldocコマンドにはさまざまなオプションが追加されています⁠⁠。

2006年リリースの5.9.3ではPod::SimplePod::Escapesというモジュールがコア入りして,さらに表現力豊かな変換ができるようになったほか,perldocコマンドには「-L」という言語を指定するオプションが追加されました。

この「-L」オプションは,イタリアのPerlユーザグループが中心になって進めているPerlドキュメント翻訳プロジェクトの一環として生まれたもの。このオプションを使うと,適切な翻訳ファイルがインストールされている場合は,通常の英語版ドキュメントではなく,翻訳済みドキュメントのほうが表示されるようになります。

> perldoc -L <言語コード> <ドキュメント名など>

いまのところ多少なりともプロジェクトが進行しているのはイタリア語フランス語リトアニア語くらいで,日本語版はありませんし(いまはCPANから削除されているようですが,一時は中国版も存在していました⁠⁠,エンコード系の機能はまだ入っていないようなので,日本語版を用意してもかならずしもうまく閲覧できるとは限らないのですが,perldocコマンドを実行するだけでそのまま日本語のドキュメントが読めるようになる日が来るのも,そう先のことではないかもしれません※5⁠。

※5

なお,この機能はPerl 5.10系列であればコアに入っていますが,Perl 5.8系列でもPod::Perldocモジュールを最新版にアップデートすれば利用できます。

英語の壁と過去の翻訳

Perlの(というかCPANの)世界は英語が公用語ですから,本格的にPerlを利用するのであればある程度英語の読み書きはできたほうが得ですが,大量の英文を読めるようになるまでにはそれなりに手間も時間もかかります。もちろんPerlの場合はソースコードがあるのですから,そちらを読めば済むこととはいえ,毎回すべてのモジュールのすべてのソースを理解しないと先に進めないようでは,生産性に問題が出ても不思議はありません。

そのため,国内でも以前から,有志の方々が独自にドキュメントの翻訳を行ってきたのですが,そのほとんどは個人で利用しているサーバのディレクトリ内にひっそりと保管されているため,その存在そのものを知らないとなかなかたどりつけないことが問題になっていました。

そのような問題を解決するために登場したのが,Japanized Perl Resources Projectという翻訳プロジェクトと,いまは利用できなくなっていますが,CPAN.jpで提供されていたperl日本語ドキュメント検索です(2002年⁠⁠。

このJapanized Perl Resources Projectの成果は,SourceForge.JP内のプロジェクトページだけでなく,perldoc.jpというドメインからも確認できるようになっていますが,2009年4月現在で56のコアドキュメントと,245のモジュールが翻訳済み。この数年は登録メンバーが忙しくなったこともあって活動は停滞気味のようですが,freemlのメーリングリストを見る限り,いまも淡々と翻訳を続けてくださっている方はいるので,興味を持たれた方は参加してみるのもよいかもしれません。

JPA翻訳プロジェクト

ただ,perldoc.jpの活動はいまのところ個人の厚意に依存する部分が大きいため,需要はあっても規模の大きいモジュールのドキュメントなどはなかなか翻訳されない,また,ドキュメントが古くなっても改訂されないといった問題を抱えていました。

そのため,先日発足したJapan Perl Associationでは,事業の一環としてPerl関連ドキュメントの充実をはかる計画が進められています※6⁠。

※6

http://wiki.perlassociation.org/docs

既存のperldoc.jpとの整合性をどう取るかなど,解決すべき課題は残っていますが,この事業が軌道に乗れば,日本語で読めるドキュメントの安定供給につながることは間違いありません。関心のある方はぜひJPAにお問い合わせいただければと思います。

著者プロフィール

石垣憲一(いしがきけんいち)

あるときは翻訳家。あるときはPerlプログラマ。先日『カクテルホントのうんちく話』(柴田書店)を上梓。最新刊は『ガリア戦記』(平凡社ライブラリー)。

URLhttp://d.hatena.ne.jp/charsbar/