これは、Tim Bunce氏 <Tim.Bunce@ig.co.uk> あるいはAndreas Koenig 氏
<Andreas.Koenig@mind.de>が、comp.lang.perl.*に投稿されたものを翻訳、
転載したものです。
分割版(SJIS)の圧縮ファイル(約44KB)を置いてみました。:
zipファイル
lzhファイル
ご質問等は著者宛に
お願い致します。
なお、翻訳に関するご指摘、ご助言は訳者までおねがいいたします。
また、誤訳等により何らかの損害が発生しても免責とさせていただきますのでご了承下さい。
注)以前の版(Revision)との差分は、原文にある以外特に示していません。
追加・変更点をお知りになりたい方は
追加・変更の履歴をご覧下さい。
ダイアルアップ接続等で時間が気になるはどうぞ。
Archive-name: perl-faq/module-list Revision: 2.31The Perl 5 モジュールリスト Revision: 2.31 ========================== $Date: 1996/09/17 00:00:01 $ Tim Bunce 氏と Andreas Koenig 氏<modules@perl.com>により 更新されています。
3) Perl 4 ライブラリースクリプトをモジュールへ変換するためのガイドライン
2) Perlコアモジュール、Perl言語拡張および文書管理ツール
5) ネットワーキング、デバイス制御(モデム)およびプロセス間通信
9) 他のプログラミング言語へのインターフェース/エミュレーション
10) ファイル名、ファイルシステム、ファイルロックおよびファイルハンドル
12) オプション、引数、パラメータおよびコンフィグレーションファイル処理
15) World Wide Web、HTML、HTTP、CGI、MIME
18) イメージ、ピックスマップ、ビットマップの操作、描画、グラフ処理
20) コントロールフローユーティリティ(コールバックや例外処理等)
第4章 − Who's Who と What's Where
キー:'+'印は新しい節あるいは項目を示します。
'!'印は変更された節あるいは項目を示します。(よくあるのは新モジュール)
=======================================================================
この文書はPerl 5モジュールの準公式リストです。Perl 4のパッケージの概念はPerl 5において拡張され、再利用可能なソフトウェアコンポーネントの新標準フォームが定義されました。:モジュールです。
Perl 5のモジュールは、利用、再利用、統合(integrate)、拡張をより簡単にする一定のガイドラインに典型的に従っています。
このリストは、comp.lang.perl.announce and comp.answers に半定期的に投稿される予定です。これには二つの基本的な目的があります。
−開発者向け:(各人の個々の)努力の重複を協力の方向に変換する。
−利用者向け:再利用可能な既存のソフトウェアを素早く探し出す。
このリストには、Perl 5の標準モジュール、その他の完成済みモジュール、作成中のモジュール、モジュール用の「あれば便利な」アイデアが含まれています。また、モジュールの命名の仕方も入った、新モジュールの創作を希望する人たち向けのガイドラインも含まれています。
ミラーFTPサイト群の一つである包括的Perlアーカイブネットワーク(CPAN:Comprehensive Perl Archives Network)が展開されつつあります。CPAN機構内では、このリストに述べられているモジュールは、CPANルートディレクトリーの下のmodulesディレクトリーで見つけられるはずです。
まず、次の場所を試してみて下さい。:
アフリカ アジア オーストラリア ヨーロッパ
北米 USA
南アメリカ
上記に記載されたディレクトリー下にある全てのファイルは完全に同一であるはずです。というのは、それらは全てマスターCPANのサイトのミラーであり、自動的にメンテナンスされているからです。あなたの最寄りのサイトを利用して下さい。
[注意] 欲しい物が見つからない、あるいは見つけた物が最新バージョンかどうか確認したい場合、または、このリストに述べられているモジュールがどうしてCPANにないのか疑問に思った時は、そのモジュールの関係者に連絡してください。
(間違っても、そのアーカイブや当リストの維持管理者に問い合わせてはいけません。)
詳細な連絡先は第4章の最初の所にあります。
CPANをうまく航行するには、まず、出発点として modules/01modules.index.html という便利なファイルを探すとよいでしょう。または、CPANサーバ上にある
このモジュールリストのWeb版である modules/00modlist.long.html のファイルの方がお好みかもしれません。
[訳者注:当然すべて英語版です。
ちなみに、国内のCPANは上記にもあるとおり、こちらです。]
ftp://ftp.lab.kdd.co.jp/lang/perl/CPAN/
あなたは、他の人と分かち合えるモジュールをお持ちではありませんか。たとえば、使いやすく、再利用可能なモジュールとして抽出しうるperl4スクリプトをお持ちかもしれません。あなたの作品が非常に便利であると認めてくれるひとが数多くいるかもしれないのです。どうかあなたの役割を果たし、Perl共同体に貢献して下さい。[お説教おしまい:-]
助け合いは世界を救う! どうか新規登録申込や更新内容を私に提出して下さい。
そうすれば、このリストを最新に保つことができます。新規あるいは修正の登録は、
modules@perl.com(これがうまくいかない場合は modules@franz.ww.tu-berlin.de.)
宛にemailで送付して下さい。但し、このアドレスにはコードは送らないで下さい。
あなたのモジュールは、CPANに自動転送してくれるPAUSEサイトに、アップロードして
ください。第2章第9節を参照して下さい。
下記ロケーションのどれかから複製を入手可能なはずです。
1.)ASCII版
2.)HTML版
本書は著作権上の保護を受けています。無償であること、最新バージョンを利用するための合理的な企画をすること、そしてクレジット及び著作権表示が保持されることを条件に、本書の一部あるいは全部について、電子的な手段(電子メール、投稿またはアーカイブ)で、または複写、複製して配布することは、認められています。書籍、雑誌記事やCD-ROMのような商業的製品への添付、転載を含め、その他の配布の権利に対する要望は Tim.Bunce@ig.co.uk 及び Andreas.Koenig@mind.de 宛に行われるべきです。(訳者注:翻訳版については、訳者にもご一報下さい。)
免責事項(Disclaimer):
ここでちょっと今回の背景を説明しましょう..。私(Tim)は1994年8月に
このモジュールリストを創刊し、1996年4月まで手作業によって維持管理して
きました。当時、Andreas は Perl Authors Upload Server (PAUSE) の実装を
行なっており、それはうまい具合に各モジュールをCPANアーカイブサイトへ
送り込んでくれていました。
(詳細は http://franz.ww.tu-berlin.de/modulelist 参照)
PAUSEがモジュール情報のデータベースを保有するようになり、それがモジュールの作者自身によって維持管理できるようになったため、モジュールリストの
モジュール一覧表の部分を、そのデータベースから抽出して作成するという
ことが実現可能となったのです。
1996年4月、Andreas がモジュールリストの自動投稿を引き受け、私は
他のテキスト部分を維持管理することとしました。私たちは即時対応できる
ような全自動化にし、さらに利用価値を上げようと計画を練っています。
3) Perl 4 ライブラリースクリプトをモジュールへ変換するためのガイドライン
モジュールは、(.pmなしの)同名のクラスを(慣習として)提供するファイルです。加えて、エクスポートされたシンポルをフェッチするのにcallすることができる、そのクラスのインポートメソッドを提供します。このモジュールは、動的 C または C++ オブジェクトをロードすることによって、そのメソッドのいくつかを実装するかもしれませんが、それはモジュールの利用者に対して全体的に透過的であるべきです。同様に、モジュールは、要求時にサプルーチン定義をslurp するためのAUTOLOAD関数を用意しているかもしれませんが、これもまた透過的です。存在するには、.pmファイルのみが要求されます。
A module is a file that (by convention) provides a class of the same
name (sans the .pm), plus an import method in that class that can be
called to fetch exported symbols. This module may implement some of
its methods by loading dynamic C or C++ objects, but that should be
totally transparent to the user of the module. Likewise, the module
might set up an AUTOLOAD function to slurp in subroutine definitions on
demand, but this is also transparent. Only the .pm file is required to
exist.
もしそうなら、現存するモジュールを丸ごと、あるいは便利な特徴を新しいクラスに継承して再利用してしまいましょう。それがうまくいかないようなら、現存するモジュールの機能を拡張したり高める作業を行っているそのモジュールの著者とうまく折り合いをつけてみましょう。完璧なサンプルは、コマンドラインオプションを処理するためのPerl4のパッケージのplethora(過多)です。
もし既存のモジュールセットを拡張するためにモジュールを書いているのなら、そのパッケージの著者と協調していただきたいのです。あなたがオリジナルの著者と同じ命名大系やモジュール対話大系に従えば、(利用する人が)助かります。
If you are writing a module to expand an already existing set of
modules, please coordinate with the author of the package. It
helps if you follow the same naming scheme and module interaction
scheme as the original author.
2.2 拡張しやすく再利用しやすいように新しいモジュールを設計してください。
ブレースされた参照を使って下さい。コンストラクターの最初のパラメータとして与えられたクラス名をブレースするにはblessの2引数形式を使って下さい。
例)
sub new {
my $class = shift;
return bless {}, $class;
}
あるいは、静的または仮想メソッドとして使用するのが好みであれば
これでさえ可。
sub new {
my $self = shift;
my $class = ref($self) || $self;
return bless {}, $class;
}
参照として配列を渡すと、さらに多くのパラメータをあとで加えることができます(またさらに早くなります)。関数を適切なメソッドに変換して下さい。大きなメソッドはより小さく柔軟なメソッドに分割して下さい。
die "Invalid" unless ref $ref eq 'FOO'; のようなクラス名テストは避けて下さい。通常、何の害もなく "eq 'FOO'" の部分は削除できます。オブジェクトには自分で自分の世話をさせましょう!一般に、できるだけhardwiredなクラス名は避けて下さい。
@ISA=qw(... Class ...)としたり、$r->func()が使えるところでは、$r->Class::func()を使うのは避けて下さい。(詳細はperlpod manページを参照して下さい)
autosplitを使って下さい。そうすれば、ほとんど使われない関数や新しく付け加えられた関数が、それらを使わないプログラムの負荷になるようなことはなくなります。モジュールにはテスト関数を、__END__ の後につけ加えて下さい。AutoSplitを使うか下記のようにするかどちらでもいいです。
eval join('',
あなたのモジュールは '空のサブクラス' テストを通りましたか? もし"@SUBCLASS::ISA = qw(YOURCLASS);" とすれば、あなたのアプリケーションは、YOURCLASSとまさしく同じ方法でSUBCLASSを使うことができるはずです。例えば、$obj = new YOURCLASS; を $obj = new SUBCLASS; に変更しても、あなたのアプリケーションはなおも機能しますか?
ステート情報(state information)を、あなたのパッケージ内に保持するのは避けて下さい。複数の他のパッケージにとって、あなたのパッケージを使用することが困難になってしまいます。ステート情報はオブジェクトの中に保持して下さい。
常に -w を使って下さい。"use strict;" (または"use strict qw(...);")を試して下さい。あまり厳密さが必要でない個々のコードプロックには "no strict qw(...);"をつけ加えることができることを銘記しておいて下さい。 常に -w 。常に -w !
perlstyle(1) マニュアルにあるガイドラインに従って下さい。
2.3 いくつかの簡単なスタイルガイドライン
perlとともに供給されるスタイルマニュアルには、多くの有用な点があります。
コーディングスタイルは個人の好みの問題です。、多くの人々が、良いコードを書いたり保守したりするのに助けになることを学び、ここ数年来そのスタイルを変えてきました。ここには、経験豊かな開発者たちが広く使用していると思われる一連の提案があります。
ワードを分割するにはアンダースコアを使って下さい。一般に$VarNamesLikeThis
より$var_names_like_thisの方が読みやすいでしょう。特に非英語圏の人々に
とってはなおさらです。 一貫してVAR_NAMES_LIKE_THIS(このように変数名は
大文字)を使うというのも簡単なルールです。
パッケージ/モジュール名はこのルールの例外です。Perlはinteger やstrictの
ような'pragma'モジュール用に、小文字のモジュール名を例外的に予約してい
ます。他のモジュールは正式には小文字で始まり、(短くポータブルにする為)
アンダースコアを使わず大文字小文字を混用しています。
変数のスコープや性質を示すのにレターケースを使うと有用なのにお気づきで
しょう。例えば、
$ALL_CAPS_HERE 定数のみ(perl変数との衝突にご用心)
$Some_Caps_Here パッケージ全体でのグローバル/スタティック
$no_caps_here スコープ関数 my() や local()での変数
関数とメソッド名は全部小文字とするのが最もうまく機能するように思われます。例)$obj->as_string()
変数や関数は、それが定義されているパッケージの外側で使われるべきではない
ということを示すために、前置きアンダースコアを使ってもよいでしょう。
メソッドコール用にはどちらも使えます。
$foo = new Foo $arg1, $arg2; # no parentheses
$foo = Foo->new($arg1, $arg2);
しかし、曖昧な形式は避けて下さい。
$foo = new Foo($arg1, $arg2); # Foo() looks like function call
コンストラクタの失敗の報告の仕方について、Larryはこう言いました:
私にはオブジェクトをコンストラクトできない場合、真のPerl例外(die)を
throwすることで例外は十分とする傾向があります。これには、直ちに有利となる点が2つかあります。第一に、各コンストラクタの戻り値をチェックする必要が
ありません。単に "$fido = new Doggie;" と述べ、成功したと推定します。
大抵のケースでは、これでより明確なコードを導けます。
第2に、失敗してしまった場合、単なる戻り値の不確定さより、さらによい
診断を得ます。実際、throwする例外は、その中でさらに捕らえられた例外を
再throwしている場合には、「スタックされた」エラーメッセージ中に多くの物を持っているものです
eval {}を使うなら、常に例外を捕獲できるでしょう。
一方、コンストラクタが相当な期間は失敗するであろうと予想される場合は例外を使うべきではなく、インターフェースを文書化しておくべきです。そうすれば、人々は戻り値をチェックすべきことを知るでしょう。 コンストラクタは真の参照
あるいは偽の未定義を戻すだけなので、 defined()を使う必要はありません。
ですから、戻り値をチェックするためのよいPerlスタイルは単にこう述べるだけです。
$conn = new Connection $addr
一般に、Booleanコンテキスト中では、できるだけ多くの意味を表すものを作って下さい。これでまっすぐなコードを導けます。Perlでは決してこんなふうには書かないで下さい。
if (do_your_thing() == OK)
論理的エラーとドメインエラーを訊ねられます。
単にこう書きましょう。
if (do_your_thing())
Perlは本来不明瞭さを避けやすくなるようデザインされているのです。
2.4 エキスポートすべきものを選択する。
メソッド名をエキスポートしないで下さい!
さしたる理由もないのにデフォルトで何か他のものをエキスポートしたりしないで下さい!
エキスポートはモジュール利用者の名称スペースを汚染します。どうしてもエキスポートしなければならないのなら、@EXPORTよりむしろ@EXPORT_OKを使ってみて下さい。また、名称衝突の危険を減らすため、短い名称やありきたりな名称は避けて下さい。
一般に、エキスポートされていないものはみんな、モジュール名::項目_名(あるいは$blessed_ref->method)文法を使えば、モジュールの外からなおアクセス可能です。慣習により、'内部的な'ものでありパブリック使用のためではないと非公式に示すために、名称の前にアンダースコアを使用することができます。
(実際には、my $subref = sub { ... }; &$subref; のようにして、プライベート関数を手に入れることは可能です。しかし、メソッドとして直接それをコールする方法はありません。メソッドは、シンボルテーブルにその名称を持っていなければならないからです。)
一般的なルールとして、モジュールがオブジェクト指向であろうとするなら、何もエキスポートしてはなりせん。もし、それが単なる関数のコレクションなら、決して@EXPORTを使わず、注意して@EXPORT_OKを使うことです。
2.5 モジュール用の名称を選択する。
この名称はできるだけ説明的であり、正確であり、完全であるべきです。曖昧さのあらゆる危険を避けて下さい。常に全部で二語以上以上使用するよう心がけて下さい。一般に名称は、どうやるのかということよりも、モジュールが何をすることについて抜きん出ているかを反映すべきです。
全部Sortと呼ばれる57モジュールを持つことは、誰にとっても人生を楽にする物ではないでしょう(Sort::Quick と呼ばれる23モジュールを持つのは、わずかばかりましですが)。誰かがあなたのモジュールをたくさんの他のモジュールといっしょにインストールしようとしているのを想像してみて下さい。何か疑問があるなら、comp.lang.perl.miscに提案して下さい。
モジュールを略式に分類したり層別したりするために、入れ子になったモジュール名を使って下さい。例えば、sortingモジュールであれば、Sort::のカテゴリに
入れます。特に理由がないのなら、モジュールは入れ子になった名称を持たなけらばなりません。モジュール名に1レベル以上の入れ子(ネスト)を使うのは避けて下さい。(当然、モジュール内のパッケージやクラスは、いくつでも使うことができます。)
モジュール名は大文字で始まるべきです。
小文字名は実用pragmas(例;lib や strict)のように特別なモジュール用に予約されています。
モジュール名はクラス階層に関連しません。
モジュール名Foo::Barは、あらゆる意味において、Foo::BarがFooからの継承で
あるということを暗示するものではありません。ネストされた名前は単に人間の
向けに、いくつかの有用なカテゴリを提供するように利用されているのです。
一般に同じ事が全てのパッケージ名についてもあてはまります。
もしあなたがひと揃いの関連したモジュール/クラスを開発しているなら、ネストされたクラスを共通接続詞とともに使うのは、名前空間のクラッシュを避けるのにいい練習となります。例えば、Xyz::Control、Xyz::View、Xyz::Model、その他。命名ガイドとしてこのリストの中のモジュールを使って下さい。
もしあるセットに新しいモジュールを加えるのなら、モジュールの命名法とそれらのモジュールの中のメソッドとのインターフェースについては、オリジナルの著者の標準に従ってください。
移植可能にするには、モジュール名の各コンポーネントを、11字内に制限すべきです。DOS上で使用される見込みがあるなら、確実に最初の8字以内で唯一のものにするよう心がけて下さい。
2.6 あなたはそれを正しくやってのけましたか?(Have you got it right?)
あなたは自分が正しい判断をしたかどうか、どうしたらわかりますか?
後で問題を引き起こしたかもしれないインターフェースデザインを選び出したことがありますか?最も適切な名前を選び出したことがありますか?何か質問をしたことがありますか?
確実に知るための、そしてたくさんの助言を拾い集めるための最良の方法は、知っている人に訊ねることです。
Usenet のニュースグループであるcomp.lang.perl.misc および comp.lang.perl.moduleはは、モジュールを開発しているほとんど全ての人々に購読されており、訊ねるには最良の場所です。(訳者注:日本では fj.lang.perlがあります。)
あなたがなす必要のあるすべてのことはモジュールの要約、その目的やインターフェースを投稿することです。各主要メソッドを数行にまとめるだけでたぶん十分です。(もし全モジュールを投稿すれば、多忙な人−通常あなたがそれを読んで欲しいと思っている人たち−には無視されるかもしれません。
モジュールがいつ準備できるか話すことができなくとも、投稿について心配することはありません。−ただメッセージのなかでそう述べればいいのです。それはあなたを助ける人を招待するのに十分でしょう。その人達はあなたのために、それを完成させることができるかもしれないのです。
2.7 README と他の付加的なファイル
通常、ソフトウェア開発は自分たちが書いたソフトウェアを完全に文書化する事はよく知られています。しかしながら、もし世界があなたのソフトウェアを緊急に必要としていて、完全な文書を書く時間があまりない場合、少なくとも以下の内容を含んだREADMEファイルを提供して下さい。
あなたの作品の使用を認可するかどうかの選択は、個人が決定するものです。一般的な機構は、あなたの著作権の存在を明らかに示し、そして他の人が作品を複写/使用/変更してもよいかどうかの宣言を行います。
例えば、Perlは2つのタイプのライセンスで供給されています。GNU GPLと芸術的ライセンス(The Artistic License)です。(README、Copying、Artisticの各ファイル参照)。 LarryがGNU GPLを単に使用しないのにはそれなりの理由があります。
私の個人的な推奨は、Larryに対する敬意を除いて(out of respect for Larry)、Perlおよびperl共同体全般は、次のように簡単に述べてしまうということです。
Copyright (c) 1995 あなたの名前。 All rights reserved.
このプログラムはフリーソフトウェアです。あなたはPerl自身と同じ条件の元
でそれを再配布および/あるいは修正することができます。
この宣言は少なくともRREADMEファイルには現れるようにすべきです。また、Copyingファイルやあなたのソースファイルの中に含むようにしても構わないでしょう。著作権表示に加え、他の言葉を含ませておくことを銘記して下さい。
2.9 バージョン/発行/公開番号をモジュールに付与する。
ExporterやMakeMakerモジュールと完全な互換性を持たせるには、$VERSION と呼ばれる非myパッケージ変数の中にモジュールのバージョン番号を保管すべきであり、少なくとも小数点以下2桁を使用すべきです(例:100分の1単位、
$VERSION = "0.01")。"1.3.2"のようなスタイルのバージョンは使わないで下さい。詳細は、Perl5.001m以降のExporter.pmを参照して下さい。
番号を検索する関数やメソッドを加えると便利かもしれません。発表にはその番号を使い、モジュールを公開する際には、アーカイブファイル名を使って下さい(モジュール名称-1.02.tar.Z)。
詳細はperldoc ExtUtils::MakeMaker.pm を参照して下さい。
2.10 モジュールの公開及び配布方法
あなたのモジュールの有用性の発表(あるいはもしモジュールが小さいようならモジュール自体)をUsenetのニュースグループのcomp.lang.perl.announceに投稿するのはよい考えです。これは少なくとも非常に広い一斉(once-off)配布を確実にするでしょう。
もし可能なら、主要なftpアーカイブにそのモジュールを置き、発表にその場所の詳細を含めておくとよいでしょう。
ftpアーカイブについてのいくつかの注意事項:
バージョン番号を含む長い自己説明的なファイル名を使って下さい。大半のincomingディレクトリーは読み取り可能/検索可能ではないでしょう。換言すれば、アップロードした後は自分のファイルを見ることはできなくなります。アップロード後はできるだけ早く電子メール(email)確認メッセージを送ることを銘記してください。さもないとあなたのファイルは自動的に削除されてしまうかもしれません。場所を発表する前に、ファイルを処理する、および/あるいは、ファイルが処理されたかどうか確認する時間を見込んでおいて下さい。
Perlモジュール用FTPアーカイブ:
下記の指示およびリンクに従ってください。
それから、upload@franz.ww.tu-berlin.de 宛連絡してください。
WWWインターフェースを利用することで、自分のftpサイトあるいはWWWサイトから
CPAN上のあなた自身のディレクトリに、あなたのモジュールをミラーするよう、アップロードサーバーに依頼することが可能になります。くれぐれも、
モジュールリスト掲載用の更新登録を私達に送るのを忘れないで下さい!
2.11 公開したモジュールを変更する際の注意
常に、以前の公開バージョンとの互換性をなんとか残すよう努力して下さい(上記2.2参照)。どうしても駄目な場合(otherwise)、もし人々が以前の動作に依存しているのなら、それに戻すような機構を加えるよう試みて下さい。非互換となった変更点の文書を発行して下さい。
もし、だめにならないのなら、直さないことです! Perl4ライブラリーのスクリプトは問題なく動き続けるはずです。(二重引用符で囲った文字列の中で非配列の@等をエスケープするような)いくつかのマイナーな修正を行うことは必要かもしれませんが、 .plファイルをモジュールに変換する必要はないのです。
3.2 言外の意味を熟慮して下さい。
スクリプトがモジュールに変換されるなら、そのスクリプトを利用するすべてのperlアプリケーションは(わずかながら)修正する必要が出てくるでしょう。あなたが同時に他の変更を行う計画がないのでしたら、その変換は(行うに)値することなのでしょうか?
3.3 好機を最大限活かして下さい。(Make the most of the opportunity.)
スクリプトをモジュールに変換する予定なら、インターフェースを再設計する好機です。上記「モジュール創作のためのガイドライン」はあなたが熟考すべき多くの問題を包含しています。
3.4 pl2pmユーティリティがあなたを始動させるでしょう。
このユーティリティは(パラメータとして与えられた)*.plファイルを読み込み、対応する*.pmファイルに書き出します。pl2pmユーティリティは次のようなことを行います。:
−標準的モジュールプロローグラインを追加
−パッケージspecifiersを ' から :: に変換
−die(...) を croak(...) に変換
−いくつかの他のマイナーな変更
pl2pmが機械的プロセスであるということは、防弾であるということではありません。変換されたコードは、特にあらゆるパッケージステートメントを、注意深く照査される必要があるでしょう。新しい .pmファイルが動くまでは、オリジナルの .plファイルを削除しないで下さい。
4.1 完全なアプリケーションはめったにPerlモジュールライブラリーには属しません。
4.2 多くのアプリケーションは再利用できるperlコードを含んでいます。
助け合いは世界を救う! 再利用し易くする一定の様式で、あなたのコードを分かち合いましょう。
4.3 再利用可能なコードをひとつあるいは複数の分割されたファイルに引き出して下さい(break-out)。
4.4 インターフェースについて再考、再設計する機会をうまく使って下さい。
4.5 いくつかの事例では、 'アプリケーション' は、再利用可能なモジュールの最上位に構築された小さなコードの断片にまとめることができます。この場合、アプリケーションは以下のように呼び出されるでしょう。:
perl -Mモジュール::名前 -e '関数(@ARGV)'
=======================================================================
2) Perlコアモジュール、Perl言語拡張および文書管理ツール
5) ネットワーキング、デバイス制御(モデム)およびプロセス間通信
9) 他のプログラミング言語へのインターフェース/エミュレーション
10) ファイル名、ファイルシステム、ファイルロックおよびファイルハンドル
12) オプション、引数、パラメータおよびコンフィグレーションファイル処理
15) World Wide Web、HTML、HTTP、CGI、MIME
18) イメージ、ピックスマップ、ビットマップの操作、描画、グラフ処理
20) コントロールフローユーティリティ(コールバックや例外処理等)
この章の残りの部分はいくつかの項に分割されています。各項は特定のトピックスを取り扱ったりそのトピックスに関連した全ての既知のモジュールを掲載しています。モジュールはある項に掲載したら他には掲載していないので、あなたの特定のニーズに関連している章は全て確認して下さい。
全情報は私が受け取った最新の更新版と一致しています。掲載したモジュールのバージョン番号やリリース日は記録していません。また、モジュールの在処も記録していません。連絡先に相談するか、普通のperlアーカイブサイトを試すか、comp.lang.perl.miscに訊いて下さい。時間がないだけなのですが、私には「直接」訊ねないで下さい。すみません。
各モジュール一覧は非常に短いものです。主な目的は、モジュールの存在や、あるいはモジュールの概念、またそれ以上のことを見い出すための連絡先に関する十分な情報を、簡単に発表することです。各一覧は(概して)基本的な状態の情報を伝えるいくつかの文字を含んでいます。
例えば:
名称 DSLI 内容 短縮名
------------- ---- -------------------------------------------- -----
Fcntl Sdcf fcntl()定数を定義 (File::Lock参照) JHI
'DSLI'の文字の意味は次の通りです。:
D - 開発段階 (備考: *言外の時間尺度はありません(NO IMPLIED TIMESCALES)*!):
i - アイデア段階。合意を得るためあるいはプレースホルダーとして掲示。
c - 構築中、しかしプリ−アルファ(まだ公開段階ではない)
a/b - アルファ/ベータテスト中
R - 公開済み
M - 成熟段階(Mature) (厳密な定義はなし)
S - 標準。Perl 5と一緒に配布。
S - サポートレベル:
m - メーリングリスト
d - 開発者
u - Usenet ニュースグループ comp.lang.perl.misc
n - 不明。comp.lang.perl.miscを試用。
L - 使用言語:
p - Perlのみ。コンパイラ不要。プラットホームから独立しているべき。
c - C および perl。C コンパイラが必要かも。
+ - C++ および perl。C++ コンパイラが必要かも。
o - perl および C あるいはC++以外の言語。
I - インターフェーススタイル
f - わかりやすい関数。参照不使用。
r - ブレスのない参照あるいは結合(tied)をいくつか使用。
O - ブレスされた参照および/または継承を使ったオブジェクト指向。
短縮名欄は連絡先の参照タグを与えるものです。この文書の第3章にある「短縮名/連絡先参照明細」の節をこのタグで検索して下さい。連絡が取れなかったら、comp.lang.perl.miscで訊ねてみて下さい。
大半のモジュールはIPC::Open2およびIPC::Open3のようにカテゴリー内に組み入れられています。'IPC::'のように1行で表示され、次に各モジュールが接頭辞の'::'とともに、その下に列挙されます。
養子縁組(Adoption)のためのアイデア
連絡先の参照のない'i'開発段階に記載されているモジュールは所有者のないアイデアです。ご遠慮無くそれらを「養子にして」下さい。但し、私には知らせて下さい。そうすれば、このリストを更新し、このように誰か興味を持っているかもしれない人に知らせることができます。養子縁組は単に、あなたがいつの日かそのモジュールを実装することを希望している、あるいはその実装に興味を持っている他の人と協力したいと思っているということを意味するものです。
協力
同様に、もしあなたの興味をそそるアイデアが誰か他の人に養子縁組されてしまったら、アイデアを共有できるようその人(達)と連絡を取って下さい。なぜなら、アイデアが養子縁組されたということは実装されるであろうということを意味「しない」からです。なぜならモジュールが記載される、および実装されつつあるということは完了するであろうということを意味「しない」からです。そのモジュールがいつか現れるであろうと期待して、黙って待っていることが実入りが多いとはとても思えません。助力を申し出て下さい。協力して下さい。努力をプールしてください。どんどんやってください。とにかくやってみましょう!
同じことが各状態のモジュールにあてはまります。大半のモジュールは、限られた、捻り出した時間の中で開発されています。もしあなたがあるモジュールに興味をもっているなら、何かが起きるのを待っていないで助力を申し出てください。
モジュール開発者は、作業が完遂しないことを早期に発表するのに躊躇すべきではありません。あなたが何かに多くの時間を費やすことができない状態ならそう言って下さい。あなたが協力を求めるのなら、たぶん誰かがあなたのためにそれを実行してくれるでしょう。
2) Perlコアモジュール、Perl言語拡張および文書管理ツール
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
CORE Suc perlネイティブ関数用内部パッケージ
UNIVERSAL SucO 内部ユニバーサル基本クラス JACKS
SUPER SucO スーパークラスのメソッドにアクセスする為の内部クラス
DynaLoader SucO 共有ライプラリー用ダイナミックローダー
AutoLoader SupO 自動関数ローダー (AutoSplitを使用)
SelfLoader adpO 自動関数ローダー (__DATA__を使用) JACKS
Exporter SupO モジュール用デフォルトインポートメソッドを実装
Carp Supf 例外を現パッケージ外へ投げ出す
Config Supf perl ビルド コンフィグレーションの明細を保管
English Supf 特殊な変数用に英語名を定義
Symbol SupO '匿名'シンボル(型グローブ)の参照を生成 CHIPS
Opcode adpf コードのコンパイル時 named opcodes を無効化 TIMB
Perl 実用モジュール
strict Supf averments(断言)の制御 (pragmasに類似)
integer Supf 浮動小数点対整数の算数を制御
less Supf 最適化を制御: 'use less memory;'
subs Supf use subs qw(x y); は sub x; sub y;より短くて済む
lib Rupf @INCのディレクトリーを追加/削除する簡単な方法
vars Supf 変数名を事前宣言
sigtrap Supf abortをトラップしトレースバックを与える
diagnostics Rdpf perl診断法を完全な書式で報告 TOMC
overload SdpO 新しいデータ型用に perl 演算子をオーバロード ILYAZ
Perl 言語の拡張(Language Extensions)
Safe SdcO opsの安全なサブセットにevalしたコードを制限 MICB
(Restrict eval'd code to safe subset of ops)
Alias bdcf aliases経由でデータ/コードへ簡単アクセス GSAR
Plthread i Perlレベルでのマルチスレッディング MICB
(非O/Sレベル)
Perlコンパイラ
B aucO Perl コンパイラ MICB
O aucO Perl コンパイラ フロントエンド MICB
ソースコードフィルター :
Filter::Util::
::Exec bdcf コプロセスの生成用インターフェース PMQS
::Call bdcf Perlフィルタの生成用インターフェース PMQS
Filter::
::exec bdcf 外部コマンドを通じたフィルタースクリプト PMQS
::sh bdcf シェルコマンドを通じたフィルタースクリプト PMQS
::cpp bdcf Cプリプロセッサーを通じたフィルタースクリプトPMQS
::tee bdcf コンパイルされたperlソースをファイルにコピー PMQS
::decrypt bdcf perlソースの解読フィルター用テンプレート PMQS
文書化ツール:
Pod::
::HTML cdpr HTMLへの変換 KJALB
::Index cdpr インデックスの生成 KJALB
::Latex cdpr LaTeXへの変換 KJALB
::Man cdpr man ページへの変換 KJALB
::Parser b パーサ(構文解析) BRADAPP +
::Pod cdpr canonical(基準)podへの変換 KJALB
::RTF cdpr RTFへの変換 KJALB
::Simplify cdpr 共通 pod パーシング(構文解析)コード KJALB +
::Texinfo cdpr texinfoへの変換 KJALB
::Text Supf PODデータをformatted ASCIIテキストに変換 TOMC
::Usage b あなた自身のpodに基づいて利用方法メッセージを出力 BRADAPP +
_______________________________________________________________________
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
AutoSplit Supf モジュールをオートローダ用ファイルに分割
Benchmark Supf perlコードの断片を時間計測するための簡便法
AddINC adpf use経由で@INCを操作するための簡便法 GBARR
DoWhatIWant i 訊ねることさえせず望むことを行う
ExtUtils::
::DynaGlue i C<->Perl I/F用ユーティリティ/グルーコード DOUGM
::MakeMaker SupO 拡張用にMakefilesを書く MMML
::Manifest Supf MANIFESTファイルを管理する為のユーティリティ MMML
::Typemap i xsubpp typemap処理 WPS
::Embed Rdpf C/C++アプリにPerlをエンベッドする為のユーティリティ DOUGM !
Test::
::Harness Supf perl-スタイル テストを実行
Devel::
::CallerItem RupO 'caller()' オブジェクトラッパー + 便利なメソッド JACKS
::CoreStack adpf coreファイルからスタックダンプを生成 ADESC
::DProf Rdcf 実行プロファイラ(Execution profiler) DMR
::DumpStack Rupf カレントの関数のスタックをダンプ JACKS
::Peek adcf 内部sv_dump及びsv_peekへのインターフェース ILYAZ
::RegExp adcO perl内部正規表現関数へアクセス ILYAZ
::Symdump bdpf Perlシンボルテーブルのアクセスとダンプ ANDK
::TraceFuncs adpO オブジェクト破棄を使ったトレース関数 MUIR
Usage bupr サブルーチン引数の型と範囲をチェック JACKS
VCS::
::RCS idpf Interface layer over RCS functionality RJRAY
::RCE idcf Perl layer over RCE C API RJRAY
Include adpO C ヘッダファイルを構文解析、XSの中で使用 GBARR
Make adpO Makefile構文解析,及び 'make' の置換 NI-S
_______________________________________________________________________
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
POSIX SupO 大半(全部?)のPOSIX.1へのインターフェース
Fcntl Sdcf fcntl()定数を定義 (File::Lock参照) JHI
Ioctl cdcf ioctl()定数を定義 KJALB
Errno i
BSD::
::HostIdent i s/gethostname(), s/gethostid() JHI
::Resource Rdcf getrusage(), s/getrlimit(), s/getpriority() JHI
Sys::
::Hostname Supf 移植可能なhostname関数を実装
::Syslog Supf BSD syslogと同じ機能を提供
::AlarmCall Rupf あらゆるsubでTimeout。nested alarms認む JACKS
Quota adcf ディスク割当システム関数。local & remote TOMZO
Proc::
::times adpf process times関数へのBy-nameインターフェース TOMC
::Forkfunc Rdpf 簡単なlwall-スタイル fork wrapper MUIR
::Simple adpO Fork wrapper with objects MSCHILLI
プラットホーム特有のモジュール
MSDOS::
::SysCalls adcf MSDOSインターフェース(割込, ポートI/O) DMO
FreeBSD::
::SysCalls cdcf FreeBSD特有のシステムコール GARY
SGI::
::SysCalls cdcf SGI特有のシステムコール AMOSS
::GL adcr SGIの Iris GL ライブラリ AMOSS
::FM adcr SGIの フォント管理ライブラリ AMOSS
VMS::
::SysCalls i VMS-特有のシステムコール CBAIL
::Filespec Sdcf VMS と Unix のファイル名シンタックス CBAIL
NeXTStep::
::NetInfo idcO NeXTStepの NetInfo (ONC NISのような) PGUEN
Mac:: Macintosh 特有のライブラリーモジュール
::AppleEvents bmcO AppleEvent マネージャとAEGizmos MCPL
::Components bmcO (QuickTime) コンポーネントマネージャ MCPL
::Files bmcO ファイルマネージャ MCPL
::Gestalt bmcO ゲスタルト(Gestalt)マネージャ: 環境照会 MCPL
::Memory bmcO メモリマネージャ MCPL
::MoreFiles bmcO 一歩進んだ ファイル管理ルーチン MCPL
::OSA bmcO Open Scripting Architecture MCPL
::Processes bmcO プロセスマネージャ MCPL
::Resources bmcO リソースマネージャ MCPL
::Types bmcO (Un-)Packing of Macintosh specific types MCPL
OS2::
::ExtAttr RdcO 拡張属性への(Tied)アクセス ILYAZ
::PrfDB RdcO .INI型データベースへの(Tied) アクセス ILYAZ
::REXX RdcO REXX DLL 及び REXX ランタイムへのアクセス ILYAZ
::FTP bncf ftplib インタフェースへのアクセス ILYAZ
::UPM bncf ユーザプロファイル管理 ILYAZ
_______________________________________________________________________
5) ネットワーキング、デバイス制御(モデム)およびプロセス間通信
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
Socket Sucf ソケットに関連した全定数の定義 JACKS
Ptty adcf 仮想端末インターフェース関数 NI-S
Net::
::Cmd cdpO 各プロトコル(FTP, SMTP他)に基づくコマンド用 GBARR
::Dnet cdcO DECnet特有のソケット用法 SPIDB
::Domain adpf システムのTCPドメイン名の決定を試みる GBARR
::FTP adpf File Transfer Protocolへのインターフェース GBARR
::Gen adcO ソケット使用のための一般的なサポート SPIDB
::IRC i インターネット Relay Chat インターフェース MRG
::Inet adcO インターネット(IP)ソケット用法 SPIDB
::NIS adcO SunのNISへのインターフェース RIK
::NISPlus adcO SunのNIS+へのインターフェース RIK
::NNTP adpO NNTP プロトコルへのクライアントインターフェース GBARR
::Netrc adpO .netrc ファイル用サポート GBARR
::Ping Supf TCP/IP ping mp実装(現在 echoのみ) PMQS
::Ping bdpO 上記の拡張再設計 RMOSE !
::POP3 adpO POP3 プロトコルへのクライアントインターフェース GBARR
::SMTP adpf Simple Mail Transfer ProtocolへのInterface GBARR
::SNPP cdpO SNPP プロトコルへのクライアントインターフェース GBARR
::SOCKS i SOCKSを使ったfirewalls経由のTCP/IPアクセス WSCOT
::SSLeay adcf Secure Socketレイア・インターフェース ADESC
::TCP adcO TCP特有のソケット用法 SPIDB
::Telnet cdpO 継承可能なTelnetソケットオブジェクトプロトコル GBARR
::Time adpf 遠隔の装置から時間を入手 GBARR
::UDP cdcO UDP特有のソケット用法 SPIDB
::hostent adpf ホスト関数用 by-nameインターフェース TOMC
::netent adpf ネットワーク関数用by-nameインターフェース TOMC
::protoent adpf プロトコル関数用by-nameインターフェース TOMC
::servent adpf サービス関数用by-nameインターフェース TOMC
IPC::
::Open2 Supf リード・ライト双方用にプロセスをオープン
::Open3 Supf Like IPC::Open2に似ているがエラー処理付き
::Chat2 ? 改装中のためサービス停止
::SysV adcr 共有メモリ、セマフォ、メッセージその他 JACKS
::Mmap adcf Unixのmmap()共有メモリへのインターフェース MICB
::Globalspace cdpO マルチプロセス共有ハッシュと共有イベント JACKS
RPC::
::ONC i Open Network Computing (Sun) RPC interface PKUTS
DCE::
::Registry bdc0 DCEレジストリ関数 DOUGM !
::rgybase bdcO rgybase.h,rgynbase.h からの定数 DOUGM
::Login bdcO ログイン関数へのインターフェース DOUGM
::login_base bdcO sec_login.h,sec_login_base.h からの定数 DOUGM
::Status bdpr *sts.h ファイルへのTie DOUGM
::UUID bdcf その他 uuid 関数 DOUGM
::ACL cdcO アクセス制御リストプロトコルへのインターフェース DOUGM
::aclbase cdcO aclbase.h からの定数 DOUGM
::RPC c リモートプロシージャコール DOUGM
Proxy i Transport層に依存しない遠隔プロセシング MICB
Proxy::
::Tk ? Proxy用 Tk Transportクラス(Tkの一部) MICB
ToolTalk adcr ToolTalkメッセージサービスへのInterface MARCP
SNMP RdcO CMU's SNMPv2 libsnmp.aへのインターフェース GSM
Parallel::
::Pvm bdcf PVM メッセージングサービスへのインターフェース EWALKER
_______________________________________________________________________
6) データ型とデータ型ユーティリティ(データベースインターフェース参照)
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
Math::
::Amoeba Rdpr 多次元関数Minimisation JARW
::Approx adpO 関数によるx,y近似値 ULPFR
::BigFloat SupO Arbitrary size floating point math package MARKB
::BigInt SupO 任意のサイズの整数計算パッケージ MARKB
::BigRat ? Arbitrary size rational numbers (fractions) MARKB
::Brent Rdpr 一次元関数Minimisation JARW
::Complex adpO 複素数データ型 DNAD
::Derivative Rdpr 1st and 2nd order differentiation of data JARW
::Fortran Rdpf Fortran log10 & sign 関数を実装 JARW
::IEEE i ANSI/IEEE標準 754-1985関数へのInterface
::LinearProg idp リニアプログラミングユーティリティ JONO
::Matrix adpO 行列データ型 (移項、乗算その他) ULPFR
::Pari adcf 強力なPARIライブラリへのインターフェース ILYAZ
::Prime i Prime number testing GARY
::RandomPrime i Generates random primes of x bits GARY
::Spline RdpO Cubic Spline Interpolation of data JARW
::Trig bdpf tan asin acos sinh cosh tanh sech cosech JARW
::TrulyRandom i based on interrupt timing discrepancies GARY
::VecStat Rdpr Some basic numeric stats on vectors JARW
::ematica adcO 強力なMathematicaシステムへのインターフェース ULPFR
Statistics::
::LTU RdpO リニア スレッショルド ユニットを実装 TOMFA
::Descriptive RdpO Descriptive 統計メソッド JKAST
::ChiSquare Rdpf Chi Squareテスト:データはどの程度ランダムか? JONO
Array::
::Vec idp vec()を使った配列の実装 LWALL
::Substr idp substr()を使った配列の実装 LWALL
::Virtual idp ファイルを使った配列の実装 LWALL
::PrintCols adpf 垂直的にソートした列の要素をプリント AKSTE
Set::
::Scalar adpO スカラーのsetの実装 (inc references) JHI
::IntegerFast adcO 正数のセット (in C) STBEY
::IntSpan adpO 整数 newsrcスタイル'1,5-9,11'等のセット SWMCD
Date::
::CTime adpf timezones用モジュラスを備えたctime.plの改訂版GBARR
::DateCalc Rdcf 様々な標準に基づいた日付計算 STBEY
::Format Rdpf Date formatter ala strftime GBARR
::GetDate adcf CでのYaccベースの自由形式dateパーサ TOMC
::Interval idpO Lightweight normalised intervalデータ型 TIMB
::Language adpO 多言語の日付をサポート GBARR
::Manip Rdpf 世界の日付と時刻の操作/解析 SBECK
::Parse Rdpf 正規表現を使ったASCII 日付解析 GBARR
::Time idpO Lightweight normalised datetimeデータ型 TIMB
Time::
::gmtime adpf gmtime用by-nameインターフェース TOMC
::localtime adpf localtime用by-nameインターフェース TOMC
::Local Supf timelocal()とtimegm()の実装
::HiRes Rdcf ハイレゾリューションtime, sleepとalarm DEWEG !
::CTime Rdpf 多くの形式を持つctime(3)式の時間フォーマット MUIR
::parseDate Rdpf 多くの種類の日付と時間を構文解析 MUIR
::JulianDay Rdpf y/m/d形式を秒に変換 MUIR
::Timezone Rdpf timezoneオフセットを算定 MUIR
::DaysInMonth Rdpf 月の何日目であるかを返す MUIR
::Zone Rdpf タイムゾーン情報と変換ルーチン GBARR
Tie::
::Hash Supr tiedハッシュを実装するための基本クラス
::Scalar Supr tiedスカラを実装するための基本クラス
::Array c tied 配列の実装用基本クラス CHIPS
::Cache adpO In memory size limited LRU cache MIKEH
::Dir adpr ディレクトリの読込用Tie hash GBARR
::File adpr ハッシュをディレクトリ中のファイルと結合(tie)AMW
::IxHash adpO 索引付ハッシュ(配列/ハッシュの合成で順序付) GSAR
::Mem adcO perl変数をメモリアドレスと結合(bind) PMQS
::Quick i tieを作り出す簡便法 TIMB
::ShiftSplice i Defines shift et al in terms of splice LWALL
::SubstrHash RdpO 文字列にストアされた超コンパクトなハッシュ LWALL
::Watch bdpO 変数を監視するために Tie::Quick を使用 LUSOL
Class::
::Eroot RdpO Eternal Root - Object persistence DMR
::Template Rdpr 構造体/メンバのテンプレートビルダー DMR
Object::
::Info Rupf オブジェクトについての一般情報(is-a, ...) JACKS
Ref RdpO Print, compare, および copyの perl構造体 MUIR
Sort::
::Versions Rdpf 改訂番号(や同様の番号)のソーティング KJALB
::PolySort bdpO リストの汎用ルールベースに基づいたソーティング DMACKS
データ型の整理(Marshaling) (文字列から/へ変換)及び永続的記憶(Storage)
FreezeThaw bdpf 文字列から/へ任意のオブジェクトを変換 ILYAZ
Persistent adpO 永続的ハッシュ参照または配列参照を生成 JPC
Storable adcr 永続的(persistant)データ構造メカニズム RAM
Marshal::
::Dispatch cdpO 文字列から/へ任意のオブジェクトを変換 MUIR
::Packed cdpO MarshalモジュールのRun-length codedバージョンMUIR
::Eval cdpO Undo serialization with eval MUIR
Data::
::Dumper RdpO perlコードへデータ構造を変換 GSAR
::Flow RdpO recipesに基づいてデータを取得 ILYAZ !
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
DBI amcO 包括的なデータベースI/F (DBDモジュール参照) DBIML
DBD::
::Oracle amcO DBI用オラクルドライバ TIMB
::Ingres i DBI用イングレスドライバ TIMB
::Informix adcO DBI用インフォミックスドライバ ADESC
::mSQL amcO DBI用Msqlドライバ ADESC
::DB2 adcO DBI用DB2ドライバ MHM
::Sybase cdpO DBI用サイベースドライバ MEWP
::QBase amcO DBI用QBaseドライバ BENLI
Oraperl Rmpf DBD::Oracle用OraperlエミュレーションI/F DBIML !
Ingperl i DBD::Ingres用IngperlエミュレーションI/F TIMB
Sybase::
::DBlib RdcO サイベースDBlibraryインターフェース MEWP
::Sybperl Rdcf sybperl 1.0xx 互換モジュール MEWP
::CTlib bdcO サイベースCTlibraryインターフェース MEWP
Msql RmcO Mini-SQL、軽量SQLデータベース ANDK
Pg Rdcf Postgres95 SQLデータベースインターフェース MERGL
Datascope Rdcf データスコープ RDBMSへのインターフェース DANMQ
Xbase bdpf 簡単なIDXインデクスを用いてXbase fileをread PRATP
Tied ハッシュファイルインターフェース:
NDBM_File Suc NDBMファイルと結合(tie)
DB_File Suc DBファイルと結合(tie) PMQS
GDBM_File Suc GDBMファイルと結合(tie)
SDBM_File Suc SDBMファイルと結合(tie)
ODBM_File Suc ODBMファイルと結合(tie)
AnyDBM_File Sup 最初に利用可能な上記*_Fileモジュールを使用
DBZ_File adc dbzファイルに結合(主にニュースヒストリー用) IANPX
MLDBM bdpO DBMにマルチレベルデータを透過的にストア GSAR
AsciiDB i Generic テキストデータベース構文解析 MICB
MARC i MARC形式へのインターフェース (bibliography) PEM
NetCDF bmcr 科学データ向けnetCDF API用インターフェース SEMM
Stanza i OSFとIBMで使用されるテキストフォーマットDB JHI
DTREE cdcf Faircom DTREEマルチキーISAM dbへのI/F JWAT
_______________________________________________________________________
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
Term::
::Complete Supf stty rawを使ったTab word completion
::ReadKey rdcf キーストロークを読取りターミナルモードを変更 KJALB
::Cap Supf 基本的なtermcap: Tgetent, Tputs, Tgoto
::Screen RdpO 基本スクリーン + inputクラス(uses Term::Cap) MRKAE
::Info adpf Terminfoインターフェース(現在Tputのみ) KJALB
::ReadLine adcf GNU Readline、ヒストリーとcompletion ILYAZ
::Control idpf 基本的なcurses-タイプのスクリーン制御(gotxy) KJALB
::Gnuplot adcf ターミナル上のDraw vectorグラフィクス etc ILYAZ
::Query Rdpf intelligent userプロンプト/レスポンスドライバ AKSTE
主なキャラクタユーザインターフェースモジュール:
Curses adcO キャラクタスクリーン処理と windowing WPS
NCurses cdcO ncursesパッケージを使ったCurses WPS
Perlmenu Mdpf Cursesベースのメニュー/テンプレートシステム SKUNZ
Cdk RdcO Curses ウィジェットのコレクション GLOVER
PV bmpO PerlVision curses windowing (OO widgets他) AGUL
Tk X Windows ユーザインターフェースモジュール:
Tk bmcO Tk v4オブジェクト指向バージョン TKML
Tkperldb bmpf グラフィカルperlデバッガインターフェース TKML
Tk::
::FileSelector bmpO ファイル選択用 Fileselectorbox TKML
他の主な X Windows ユーザインターフェースモジュール:
Sx Rdcf シンプルなAthena widgetインターフェース FMC
Motif cdcf シンプルな Motif および Xt インターフェース ERICA
Wcl i Widget 生成ライブラリへのインターフェース TOMH
Fresco cd+O Fresco (post X11R6 バージョン)へのI/F BPETH
_______________________________________________________________________
9) 他のプロミング言語へのインターフェース/のエミュレーション
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
C::
::Scan RdpO C ファイルのヒューリスティック構文解析 ILYAZ
Tcl RdcO Tclへの完全なアクセス MICB
::Tk RdcO Tk *via Tcl* への完全なアクセス MICB
Language::
::Prolog adpO Prolog の実装 JACKS
SICStus adcO SICStus Prologランタイムへのインターフェース CBAIL
Fortran::
::NameList adpf FORTRAN NameList データへの インターフェース SGEL
_______________________________________________________________________
10) ファイル名、ファイルシステムとファイルロック(ファイルハンドル参照)
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
Cwd Supf カレントワーキングディレクトリ関数
File::
::Attrib idpO ファイル属性のGet/set (stat) TYEMQ
::Basename Supf ファイル名のベースネーム(basename)を戻す
::CheckTree Supf ファイル/dirツリーをチェック against a specification
::Copy adpf ファイルやファイルハンドルのコピー ASHER
::CounterFile RdpO Persistent カウンタクラス GAAS
::Find Supf あるディレクトリツリーで全アイテムに対し関数をコール
::Flock adpf flock() wrapper. locks を自動生成 MUIR
::Glob adpf ファイル名 globing (ksh スタイル) TYEMQ
::Listing bdpf ディレクトリリスニングを構文解析 GAAS
::Lock adcf flock() と lockf()を使ったファイルロック JHI
::Path Supf ファイルパスと名称ユーティリティ
::Slurp bdpf ファイルへ速くRead/write/append MUIR
::stat adpf stat関数用by-nameインターフェース TOMC
Filesys::
::dfent adpf By-name インターフェース TOMC
::mntent adpf By-name インターフェース TOMC
::statfs adpf By-name インターフェース TOMC
_______________________________________________________________________
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
String::
::Edit adpf いろんな(Assorted)ハンディ文字列編集関数 TOMC
::Approx Rdpf 近似的な文字列マッチングと置換(substitution) JHI
::Scanf Rdpf C sscanf 関数の実装 JHI
::Parity adpf パリティ (odd/even/mark/space)処理 WINKO
::BitCount adpf 文字列中の"1"ビットの個数をカウント WINKO
::MatchMany adpf 多くのパターンにマッチする高速コードを構築 TOMC
モジュールに関連した言語テキスト
Text::
::Abbrev Supf あり得る全ての略語のハッシュを構築
::ParseWords Supf シェルスタイルのquotingを含む文字列を構文解析
::Soundex Supf 文字列を soundex値に変換
::TeX cdpO TeX typesetting language input parser ILYAZ
::Bib RdpO refer(1)型ビブリオグラフィファイルを構文解析 ERYQ
::Tabs Sdpf expand(1)に準拠したタブの拡大と縮小 MUIR
::Wrap Rdpf 単純なパラグラフ作成のために行をラップ(Wrap) MUIR
::Template bdpO embedded perlと共にテンプレートテキストを拡張MJD
Stemming アルゴリズム
Text::
::English adpf 英語のstemming IANPX
::German adpf ドイツ語stemming ULPFR
::Stem bdpf 英語のワードのstemming用 Porterアルゴリズム IANPX
Search::
::Dict Supf テキストファイルを順序付けた辞書を検索
(Search a dictionary ordered test files)
他の Text:: モジュール (これらは String:: の下にあるべきですが
それより早く発行されました)
Text::
::Trie adpf 文字列群から共通の最初と最後の部分を見つける ILYAZ
::Parser adpO パターンと状態(states)を使った文字列構文解析 PATM
SGML::
::Element cdpO SGML要素構造ツリーを構築 LSTAF
::SP cd+O James Clarkの Sp SGML パーサへのI/F BARTS
SGMLS RdpO SGMLSとNSGMLS用ポストプロセッサ DMEGG
Font::
::AFM RdpO Adobeフォントメトリックファイルを構文解析 GAAS
Marpa cd+O コンテキストフリー パーサ JKEGL
Anagram adcf Anangram ジェネレータ ASHER
_______________________________________________________________________
12) オプション、引数、パラメータ及びコンフィグレーションファイル処理
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
Getopt::
::Std Supf 基本的な getopt と getopts を実装
::Long Supf 先進的なオプション処理 JV
::Gnu adcf ロングオプション処理のGNUフォーム WSCOT
::Regex ad 正規表現を使ったオプション処理 JARW
::Mixed Rdpf long 及び shortオプションをサポート CJM
::Help bdpf ヘルプとデフォルトを持った、また別のgetopt IANPX
ConfigReader cdpO コンフィグレーションファイルから指令を読込 AMW
Resources bdpf Perlにおけるアプリケーション デフォルト管理 FRANCOC
IniConf bdpO INIスタイル設定ファイルをリード/ライト SHUTTON
_______________________________________________________________________
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
I18N::
::Collate Sdpr 比較(変化)をベースにしたロケール JHI
::WideMulti i 幅広のマルチバイトキャラクタ文字列 JHI
Locale::
::gettext Rdcf 多国語のメッセージ PVANDRY
_______________________________________________________________________
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
User::
::pwent adpf パスワードデータベースへの by-name I/F TOMC
::grent adpf グループデータベースへの by-name I/F TOMC
PGP adp0 パイプ経由のPGPサブプロセスへの簡単なI/F GEHIC
DES adcf DES 暗号化 (libdes) EAYNG
Des adcf DES 暗号化 (libdes) MICB
MD5 Rdcf MD5 メッセージダイジェストアルゴリズム NWINT
SHA adcO NIST SHA メッセージダイジェストアルゴリズム UWEH
Kerberos i Kerberos IV 認証 MICB
GSS i 汎用的セキュリティサービスAPI (RFC 1508/9) MSHLD
Crypt::
::DES a DES 暗号化 (libdes) GARY
::IDEA a ??? GARY
::PRSG a 仮想ランダムシーケンス用160ビット LFSR GARY
_______________________________________________________________________
15) World Wide Web, HTML, HTTP, CGI, MIME その他 (テキスト処理参照)
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
URI::
::Escape ampf 一般的な URI escaping/unescaping 関数 LWWWP
::URL RmpO Uniform Resource Locator オブジェクト LWWWP
CGI::
::Base bmpO 完全な HTTPD CGI インターフェースクラス CGIP
::BasePlus RmpO Extra CGI::Baseメソッド (incl file-upload) CGIP
::Carp cmpf CGIスクリプト用Drop-in Carp置換 CGIP
::ErrorWrap bdpf warningsとdieをトラップし、HTMLに変換 TOMC
::Imagemap ampO 専門アプリ向けイメージマップ処理 MGH
::MiniSvr RmpO per-sessionミニサーバとしてCGIアプリをfork CGIP
::Out adpf CGI出力のバッファおよびエラー報告 MUIR
::Request RmpO CGIリクエストを構文解析しformフィールドを処理CGIP
::Response ampO CGIアプリ用レスポンスコンストラクション CGIP
::Session cmpO session/state情報を維持 MGH
::CGILite ampO 高速apps用ライトウェイトインタフェース SHGU !
HTML::
::QuickCheck cdpf HMTLテキストの高速で簡単な確認 YLU
::Base adpO HTMLページを造る為のオブジェクト指向的方法 GAND
::Simple bdpf HTMLを生成するための簡単な関数 TOMC
::Element ampO HTML構文解析ツリーの代表 LWWWP
::Entities bmpf HTMLエントリをエンコード/デコード LWWWP
::Formatter ampO HTMLをプレーンテキストやpostscriptに変換 LWWWP
::Parse ampO HTML文書を構文解析 LWWWP
::Stream adpO HTML出力ストリーム ERYQ
HTTP::
::Date bmpf HTTP日付フォーマット用の日付変換 LWWWP
::Headers bmpO HTTPメッセージヘッダをカプセル化するクラス LWWWP
::Message bmpO リクエスト/レスポンス用基本クラス LWWWP
::Request bmpO HTTPリクエストをカプセル化するクラス LWWWP
::Response bmpO HTTPレスポンスをカプセル化するクラス LWWWP
::Status bmpf HTTPステータスコード処理 LWWWP
::Negotiate bmpf HTTPコンテンツネゴシエーション LWWWP
HTTPD::
::UserAdmin adpO サーバのユーザとグループファイルの管理 DOUGM
::GroupAdmin bdpO サーバグループデータベースの管理 DOUGM
::Authen bdpO HTTP の基本的及びダイジェスト認証を遂行 DOUGM
::Config cdpO サーバコンフィグレーションファイルの管理 DOUGM
::Access cdp サーバのアクセスコントロールファイルの管理 DOUGM
WWW::
::RobotRules ampO /robots.txt ファイル の構文解析 LWWWP
LWP:: Libwww-perl5
::MediaTypes bmpf メディアタイプとmailcap処理 LWWWP
::Simple bmpf libwww-perlへの簡単な手続きインターフェース LWWWP
::UserAgent bmpO A WWW ユーザーエージェントクラス LWWWP
::RobotUA bmp0 ロボットアプリ用ユーザーエージェント LWWWP
::Protocol::* URL schemes用LWPサポート (http, file他) LWWWP
MIME::
::Base64 Rdpf Base 64 (RFC 1521)のエンコード/デコード GAAS
::QuotedPrint Rdpf Quoted-Printable のエンコード/デコード GAAS
::Decoder adpO 現存するMIMEデコーダへのOOインタフェース ERYQ
::Entity adpO 抽出されデコードされたMIME エンティティ ERYQ
::Head adpO 構文解析した MIME ヘッダ ERYQ
::Parser adpO MIMEエンティティを作成する為streamsを構文解析 ERYQ
Apache bdcO Apache サーバ APIへのインターフェース DOUGM
CCI i WWWブラウザ用Common Client Interface DOUGM
_______________________________________________________________________
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
EventServer RupO i/o,timers&interrupts上のトリガオブジェクト JACKS
::Functions Rupf サーバの初期化用ユーティリティ関数 JACKS
::*Wrapper Rupf 異なったサーバタイプ用のwrapper群 JACKS
::Gettimeofday Rupr gettimeofday syscall wrapper JACKS
::Signal Rupr イベントサーバ用シグナルハンドラ JACKS
Server::Server::
::EventDriven RupO 'EventServer'参照 (互換性維持用) JACKS
Server::Echo::
::MailPipe cup piped mailを受け付けるプロセス JACKS
::TcpDForking cup クライアントをforkするTCPデーモン JACKS
::TcpDMplx cup クライアントを多重化するTCPデーモン JACKS
::TcpISWFork cup TCP inetd waitプロセス、クライアントをfork JACKS
::TcpISWMplx cup TCP inetd waitプロセス、クライアントを多重化 JACKS
::TcpISNowait cup TCP inetd nowaitプロセス JACKS
::UdpD cup UDP デーモン JACKS
::UdpIS cup UDP inetd プロセス JACKS
Server::Inet::
::Functions cdpf Inet ソケット処理用ユーティリティ関数 JACKS
::Object cupO Inet 基本オブジェクト JACKS
::TcpClientObj cupO TCPクライアント(connected)オブジェクト JACKS
::TcpMasterObj cupO TCPマスタ (listening) オブジェクト JACKS
::UdpObj cupO UDP オブジェクト JACKS
Server::FileQueue::
::Functions cupf ファイルとメールボックス処理用関数 JACKS
::Object cupO 基本オブジェクト JACKS
::DirQueue cupO ディレクトリ中にキューされたファイル JACKS
::MboxQueue cupO メールボックスにキューされたメール JACKS
Server::Mail::
::Functions cupf ファイルとメールボックス処理用関数 JACKS
::Object cupO メール基本オブジェクト JACKS
_______________________________________________________________________
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
Compress::
::Zlib adcO Info-Zip zlib ライブラリへのインターフェース PMQS
Convert::
::UU bdpf UUencode と UUdecode ANDK
_______________________________________________________________________
18) イメージ、ピックスマップ及びビットマップの操作、ドローイング、グラフィング
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
GD adcO GIF 編集/ペンティング/操作 LDS
OpenGL adcf OpenGL ドローイング/イメージングlib.へのI/F STANM
PDL cdcf Perl データ言語 - 数値分析環境 KGB
PGPLOT Rdof PGPLOTプロッティングライブラリ -科学用グラフ KGB
PixDraw adcO トゥルーカラーイメージのドローイングと操作 KSB
VRML cdpf scenesを生成するためのVRMLプリミティブ及び拡張 HPALM
Graphics::
::Simple idcO 簡単なドローイングプリミティブ NEERI
::Turtle idp タートルグラフィクスパッケージ NEERI
Image::
::Size Rdpf 共通フォーマット中のイメージサイズを測定 RJRAY
_______________________________________________________________________
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
Mail::
::Address adpf Eメールアドレスの操作 GBARR
::Internet adpO RFC822アドレス操作用関数 GBARR
::MIME adpO MIMEを理解するようにMail::Internetを拡張 GBARR
::Cap adpO RFC1524の規定の様にmailcapファイルを構文解析 GBARR
::Send adpO メール送付用の簡単なインターフェース GBARR
::Mailer adpO 簡単なメールエージェントI/F(Mail::Send参照) GBARR
::Alias adpO メールエイリアスの読み/書き/拡大 GBARR
::Util adpf メールユーティリティ(Mail::*モジュール用) GBARR
::MH adcr MH メールインターフェース MRG
::POP3Client bdpO POP3サーバのクライアント向けサポート SDOWD
::Folder adpO メールフォルダ処理用基本クラス KJOHNSON
News::
::NNTPClient bdpO NNTP サーバのクライアント向けサポート RVA
::Newsrc adpO .newsrc ファイルの管理
NNTP::
::Server i NNTP 用サポート JOEHIL
_______________________________________________________________________
20) コントロールフローユーティリティ (コールバックと例外その他)
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
Religion adpr die()/warn()を使った時の行き先制御 KJALB
Callback RdpO 関数コールバックオブジェクトを簡単に使う定義 MUIR
_______________________________________________________________________
21) ファイルハンドルおよび入出力ストリームユーティリティ
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
IO::
::Handle cdpO 入出力処理用基本クラス GBARR
::Pipe cdpO パイプ処理用メソッド GBARR
::Socket cdpO ソケット入出力処理用メソッド GBARR
::Seekable cdpO seekabl入出力処理用メソッド GBARR
::Select adpO システムselectコールへのオブジェクトインターフェース GBARR
::File cdpO ディスクファイルベースのi/o処理用メソッド GBARR
::Pty cdpO 仮想端末アロケーション他用メソッド PEASE
::STREAMS i cO System V スタイルのSTREAMS制御用メソッド
FileHandle SupO ファイルハンドルオブジェクトとメソッド
FileCache Supf システムで認可した数以上のファイルをopenし続ける
DirHandle SupO ディレクトリハンドルオブジェクトとメソッド CHIPS
SelectSaver SupO 選択したファイルハンドルをSaveおよびrestore CHIPS
Selectable cdpO イベントドリブン I/O ストリーム MUIR
Log::
::Topics Rdpf トピックベースのログメッセージのフローを制御 JARW
_______________________________________________________________________
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
Win32::
::OLE adcf IOLE API関数へのインターフェース WIN32
::EventLog adcf Win32 EventLog関数へのインターフェース WIN32
::NetAdmin adcf Win32 NetAdmin関数へのインターフェース WIN32
::NetResource adcf Win32 NetResource関数へのインターフェース WIN32
::WinError adcf Win32 WinError関数へのインターフェース WIN32
::Registry adcf Win32 Registry関数へのインターフェース WIN32
::Process adcf Win32 Process関数へのインターフェース WIN32
::FUtils bdcf 消失関連(missing)ファイルユーティリティ関数の実装 JOCASA
WinNT cdcf WindowsNTの特定の関数へのインターフェース WIN32
NT cdcf WinNT用の旧名 - 消え去る見込み WIN32
Win95 i Windows 95 の特定の関数へのインターフェース WIN32
_______________________________________________________________________
名称 DSLI 内容 短縮名
----------- ---- -------------------------------------------- -----
Archie Rdpf Prospero ARDPプロトコル経由のArchieクエリー GBOSS
CPAN adpO Perlアーカイブ 一覧(browse)及びダウンロード ANDK +
CreditCard Rdpf クレジットカード番号のチェックディジットテスト JONO
Neural ad+O ニューラルネットワークのジェネリックシミュレーション LUKK
Nexus cdcO NexusへのI/F(スレッド/ipc/プロセス) RDO
Pcap i LBL's パケットキャプチャー Lib用I/F AMOSS
Roman Rdpf アラビア数字(Arabic)とローマ数字の変換 OZAWA
SDDF cd+O Pablo 自己定義データフォーマットへのI/F FIS
WAIS Rdcf freeWAIS-sfライブラリーへのインターフェース ULPFR
Bio::
::* i 分子生物学用ユーティリティ SEB
Remedy::
::AR adcO Remedy's アクションリクエストAPIへのI/F RIK
ARS Rd?? RemedyアクションリクエストAPIへのインターフェース JMURPHY
Logfile RdpO ログファイルを分析する為のジェネリックな方法 ULPFR
Agent bdpO perl用エージェントスペース メソッドの提供 JDUNCAN
Penguin::
::Easy RdpO Penguin APIへの早くて簡単なアクセスを提供 JDUNCAN
Business::
::CreditCard Rdpf クレジットカード番号チェックディジットテスト JONO
Print::
::Label i 住所ラベルのフォーマット JONO
BarCode::
::UPC i PostScript UPC バーコードの産生 JONO
Audio::
::Sox i 一つ又は複数のモジュールとしての sox サウンドライブラリ NI-S
=======================================================================
モジュールリストのこの章は"大規模プロジェクト"を列挙するのに振り向けました。ここで大規模について(あるいはプロジェクトも)定義するつもりはありません。下記の項目が自述することと思います。ちょっと手を出したものもいくつかはありますが、ほとんど全てはアイデア段階です。
これらは非常に強いスキルとたくさんの時間を持った人々のためのアイデアです。Perlのコア実装に関連しているプロジェクトで何か仕事を始める_以前_に、Larryに話したり聞いたりして下さい。
これらがいつ実装されるかと聞かないで、それらを実装するのに自分がどのように支援することができるかと聞いて下さい。
Perlと一緒に配布されるTodoは、"あればすばらしい(Would be nice to have)"から"漠然とした可能性"まで広がったカテゴリーの中で60項目以上列挙されています。
連絡先: LWALL P5P
これは本当は二つのプロジェクトなのです。独立したマルチプルperlインタープリター構造を使う真のスレッド(例えばPOSIX)とシングルperlインタープリター内での'タスク'の単純なタイムスライシングです。真のスレッドはオペレーティングシステムの支援や外部スレッドライブラリーを必要とし、シングルタイムスライシングは必要としません(し、全プラットホームに移植可能であるべきです)。
Malcolm Beattie <mbeattie@sable.ox.ac.uk> がこの分野で拡張的な仕事を遂行しました。
連絡先: LWALL MICB P5P
OMG's (Object Management Group) CORBA (Common Object Request Broker
Architecture) の仕様は、OMG準拠(OMG-compliant)のオブジェクト間に標準インターフェース定義を提供します。IDL (Interface Definition Language)はオブジェクトの対話(interaction)のための基本メカニズムです。おそらく、XSコードを書き出しうる拡張IDLコンパイラーが would be a good way forward です。
連絡先: ASHER, JACKS, DMR
参照:
インターランゲージ統合システム(Inter-Language Unification system :ILU)。
CORBA ORBに類似しており、いくつかの省略および拡張がなされています。
OMG CORBA IDLをサポート。
連絡先: DMR
参照:
LEN, PUSH, POP, SHIFT, UNSHIFT および a fallback to SPLICE が必要です。
非常に広まった、perl内部での配列の使用によって複雑に。
連絡先: P5P LWALL
perlのファイルハンドルを結合するのを許す(to allow perl file handles to be tied)のは長期にわたる目標です。
これはおそらくsfio (Safe Fast IO)ライブラリーをベースにすることになるでしょう。
連絡先: PMQS TIMB P5P LWALL NI-S
byaccやbisonのように、yaccのあるバージョンは、パーサーを実装して OO .xs および .pm を吐き出すよう変換されるべきです。
連絡先: NI-S P5P LWALL
以下のE-メールアドレスのリストは、自動化されたPerl Authors Upload Server (PAUSE) に蓄積されたcredentialsに基づいています。どれか連絡先が最新のものになっていない場合、お手数ですがhttp://www.perl.com/CPAN/modules/04pause.html を訪ねてください。そこには、自分でデータベースの編集ができるCGIスクリプトへのポインタがあります。
2) Perl よく訊かれる質問集 (FAQ)とその他の情報源
FAQ および Meta-FAQ は以下の場所同様、全てのCPANサイトのdoc/FAQsディレクトリで利用できます。
Perl Meta-FAQ
Perl FAQ
ftp://ftp.delphi.com/pub/mirrors/packages/ftp.perl.com/
おしまい。
ホームページへ戻る。
序
モジュールはどこに保管されている?
南アフリカ
ftp://ftp.is.co.za/programming/perl/CPAN/
香港
ftp://ftp.hkstar.com/pub/CPAN/
韓国(South Korea)
ftp://ftp.nuri.net/pub/CPAN/
日本
ftp://ftp.lab.kdd.co.jp/lang/perl/CPAN/
台湾
ftp://dongpo.math.ncu.edu.tw/perl/CPAN/
オーストラリア
ftp://coombs.anu.edu.au/pub/perl/
ftp://ftp.mame.mu.oz.au/pub/perl/CPAN/
ニュージーランド
ftp://ftp.tekotago.ac.nz/pub/perl/CPAN/
オーストリア
ftp://ftp.tuwien.ac.at/pub/languages/perl/CPAN/
ベルギー
ftp://ftp.kulnet.kuleuven.ac.be/pub/mirror/CPAN/
チェコ共和国
ftp://sunsite.mff.cuni.cz/Languages/Perl/CPAN/
デンマーク
ftp://sunsite.auc.dk/pub/languages/perl/CPAN/
フィンランド
ftp://ftp.funet.fi/pub/languages/perl/CPAN/
フランス
ftp://ftp.ibp.fr/pub/perl/CPAN/
ftp://ftp.pasteur.fr/pub/computing/unix/perl/CPAN/
ドイツ
ftp://ftp.leo.org/pub/comp/programming/languages/perl/CPAN/
ftp://ftp.rz.ruhr-uni-bochum.de/pub/CPAN/
ftp://ftp.uni-hamburg.de/pub/soft/lang/perl/CPAN/
ギリシャ
ftp://ftp.ntua.gr/pub/lang/perl/
ハンガリ
ftp://ftp.kfki.hu/pub/packages/perl/CPAN/
イタリヤ(Italy)
ftp://cis.utovrm.it/CPAN/
ノルウェー(Norway)
ftp://ftp.uit.no/pub/languages/perl/cpan/
ポーランド
ftp://ftp.pk.edu.pl/pub/lang/perl/CPAN/
ftp://sunsite.icm.edu.pl/pub/CPAN/
ポルトガル
ftp://ftp.ci.uminho.pt/pub/lang/perl/
ftp://ftp.telepac.pt/pub/perl/CPAN/
ロシア
ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/
スロベニア
ftp://ftp.arnes.si/software/perl/CPAN/
スペイン
ftp://ftp.rediris.es/mirror/CPAN/
ftp://ftp.rediris.es/mirror/CPAN/
スウェーデン
ftp://ftp.sunet.se/pub/lang/perl/CPAN/
スイス
ftp://ftp.switch.ch/mirror/CPAN/
オランダ
ftp://ftp.cs.ruu.nl/pub/PERL/CPAN/
イギリス
ftp://ftp.demon.co.uk/pub/mirrors/perl/CPAN/
ftp://sunsite.doc.ic.ac.uk/packages/CPAN/
ftp://unix.hensa.ac.uk/mirrors/perl-CPAN/
カナダ
ftp://mango.softwords.bc.ca/pub/perl/CPAN/
ftp://ftp.cdrom.com/pub/perl/CPAN/
ftp://ftp.cs.colorado.edu/pub/perl/CPAN/
ftp://ftp.cis.ufl.edu/pub/perl/CPAN/
ftp://ftp.delphi.com/pub/mirrors/packages/perl/CPAN/
ftp://ftp.duke.edu/pub/perl/
ftp://ftp.digital.com/pub/plan/perl/CPAN/
ftp://ftp.metronet.com/pub/perl/
ftp://ftp.orst.edu/pub/packages/CPAN/
ftp://ftp.rge.com/pub/languages/perl/CPAN/
ftp://ftp.sedl.org/pub/mirrors/CPAN/
ftp://ftp.sterling.com/CPAN/
ftp://ftp.uoknor.edu/mirrors/CPAN/
ftp://uiarchive.cso.uiuc.edu/pub/lang/perl/CPAN/
チリ
ftp://sunsite.dcc.uchile.cl/pub/Lang/perl/CPAN/
役割を果たす(Playing Your Part)
Perlは莫大な共同作業の成果です。perlを使用する人はみな、数百いや数千人の寄与の恩恵を授かっているのです。あなたが利用し始めてから何度perlは助けになったでしょうか。
さらに新しいリストの複製を手に入れるには
このモジュールリストは comp.lang.perl.announce, comp.answers および news.answersに長い失効期限(一ヶ月以上)をつけて隔週おきに投稿されています。したがって、最新の複製が欲しい時最初に探すべき場所は、あなた自身のUsenetスプールエリアということになります。
ftp://rtfm.mit.edu/pub/usenet/news.answers/perl-faq/module-list
ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/comp/lang/perl/
http://www.perl.com/CPAN/modules/00modlist.long.html
編集情報および著作権
この文書に関する全ての著作権は Tim Bunce と Andreas Koenig が保有しています。(Copyright (c) 1995 by Tim Bunce and Andreas Koenig)
この文書の内容は、ほとんど確認しない状態あるいは未確認状態で、多くの情報源から集めた情報の集積です。この情報あるいはその使用に関する保証は全くありません。
=======================================================================
第1章 − モジュール:創作、利用そして乱用
============================================
1) Perl 5 モジュール用語集
1) Perl 5 モジュール用語集 ( larry用語ミニ教室)
-------------------------
Perl 5はパッケージを利用したクラスを実装していますが、パッケージの存在がクラスの存在を意味するものではありません。パッケージは単に名前空間(namespace)です。クラスはメソッドとして使用されうるサブルーチンを提供するパッケージです。メソッドは、("静的"メソッド用)パッケージ名や("仮想"メソッド用の)なんらかの参照を最初の引数として期待している単なるサプルーチンです。
2) モジュール創作のためのガイドライン
---------------------------------
2.1 似たようなモジュールがある形で既に存在しているのでは?
or die "Couldn't create Connection";
−モジュール/パッケージ/拡張等の記述
−著作権の告知(notice)− 下記参照
−必要条件 − その他必要とするかもしれない物
−構築方法 − Makefile.PL等へのあるかもしれない変更
−インストール方法
−このリリースでの新しい変更点、特に非互換性
−将来予定している変更/拡張
もしREADMEファイルがあまりに大きすぎると思われるなら、インストール用、複写用、実行(ToDo)用などのいくつか章に分割し、複数のファイルに分けてしまってもかまわないでしょう。
2.8 著作権の告知の追加
http://www.perl.com/CPAN/modules/04pause.html
あるいは、下記サイトのいずれかにアップロードしてください。
ftp://franz.ww.tu-berlin.de/incoming (推奨)
ftp://ftp.cis.ufl.edu/incoming
3) Perl 4 ライブラリースクリプトをモジュールへ変換するためのガイドライン
---------------------------------------------------------------------
3.1 あらゆるものを変換してほしいという要望はないのです。
4) アプリケーションコードの再利用のためのガイドライン
--------------------------------------------------
第2章 − Perl 5 モジュールリスト
1) Perl 5 モジュール用語集
===================================
文字が欠けている所は、通常他の文字から推断できます。例えば、'i' は 'id' を含み、'S' は 'Su' を含みます。
_______________________________________________________________________
_______________________________________________________________________
第3章 − 大規模プロジェクトレジストリー
==========================================
ftp://omg.org/pub/OMG_IDL/
http://www.cs.cornell.edu/Info/People/maffeis/electra.html
http://www.faslab.com/fresco/HomePage.html (re DISH Tcl+CORBA DII)
ftp://ftp.isi.edu (ORBeline)
ftp://labrea.stanford.edu
ftp://parcftp.parc.xerox.com/pub/ilu/ilu.html
ftp://ftp.th-darmstadt.de/pub/networking/platforms/CORBA/
idl-cfe@sun.com
ftp://parcftp.parc.xerox.com/pub/ilu/ilu.html
=======================================================================
第4章 − Perl Who's Who と What's Where
1) 短縮名/連絡先
==========================================
短縮名 連絡先
----- --------------------------------------------------------------
ADESC Alligator Descartes <descarte@mcqueen.com>
AGUL Ashish Gulhati <hash@netropolis.org>
AKSTE Alan K. Stebbens <aks@hub.ucsb.edu>
ALSCH Alan Scheinine <scheinin@crs4.it>
AMOSS Amos Shapira <amoss@cs.huji.ac.il>
AMW Andrew Wilcox <awilcox@world.std.com>
ANDK Andreas K〓ig <a.koenig@franz.ww.TU-Berlin.DE>
ANDYD Andy Dougherty <doughera@lafcol.lafayette.edu>
APML The Perl/Apache Mailing List
Mail to modperl-REQUEST@listproc.itribe.net with body
"subscribe"
ASHER Aaron Sherman <ajs@openmarket.com>
BARTS Bart Schuller <P.B.Schuller@cuci.nl>
BBUM Bill Bumgarner <bbum@friday.com>
BENLI Ben Lindstrom <mouring@netnet.net>
BJEPS Brian Jepson <bjepson@conan.ids.net>
BMIDD William J. Middleton <wjm@best.com>
BOBSIDE Bob Sidebotham <rns@fore.com>
BPETH Bill Petheram <petheram@acm.org>
BPOWERS Brent B. Powers <powers@ml.com>
BRADAPP Brad Appleton <Brad_Appleton-GBDA001@email.mot.com>
CAADAMS Clifford A. Adams <caadams@zynet.com>
CBAIL Charles Bailey <bailey@genetics.upenn.edu>
CGIP The CGI-Perl Developers mailing list
Mail to CGI-perl-REQUEST@webstorm.com with body "subscribe"
CHIPS Chip Salzenberg <chs@nando.net>
CHOWARTH Colin Howarth <colin@muc.de>
CJM Christopher J. Madsen <ac608@yfn.ysu.edu>
CNANDOR Chris Nandor <pudge@pcix.com>
DALGL Bob Dalgleish <bob.dalgleish@sk.sympatico.ca>
DANKOGAI Dan Kogai <dankogai@jms.jeton.or.jp>
DANMQ Daniel M. Quinlan <danq@colorado.edu>
DAVEROTH Dave Roth <rothd@roth.net>
DBIML The DBI Mailing Lists
Subscribe via http://www.fugue.com/dbi. If you can't do
that then mail to dbi-REQUEST@fugue.com and ask (the human,
Ted Lemon) to subscribe you to one or more of dbi-announce,
dbi-users, or dbi-dev.
DEWEG Douglas E. Wegscheid <wegscd@whirlpool.com>
DMACKS Daniel Macks <dmacks@netspace.org>
DMEGG David Megginson <dmeggins@aix1.uottawa.ca>
DMO Darryl Okahata <darrylo@sr.hp.com>
DMR Dean Roehrich <roehrich@cray.com>
DNAD Dave Nadler <nadler@ug.eds.com>
DOUGM Doug MacEachern <dougm@osf.org>
EAYNG Eric Young <eay@mincom.oz.au>
EHOOD Earl Hood <ehood@convex.convex.com>
ELMAR Elmar Schalueck <Elmar.Schalueck@rz.ruhr-uni-bochum.de>
ERICA Eric Arnold <Eric.Arnold@corp.sun.com>
ERYQ Eryq <eryq@rhine.gsfc.nasa.gov>
EVANPRO Evangelo Prodromou <evangelo@endcontsw.com>
EWALKER Edward Walker <edward@nsrc.nus.sg>
FIS Frank Ian Smith <frank@ns.array.ca>
FMC Frederic Chauveau <fmc@pasteur.fr>
FRANCOC Franco Callari <franco@cim.mcgill.ca>
FSG Felix Sebastian Gallo <fsg@coriolan.amicus.com>
GAAS Gisle Aas <aas@sn.no>
GAND Greg Anderson <greg@ftp.netgate.net>
GARY Gary Howland <gary@systemics.com>
GBARR Graham Barr <Graham.Barr@tiuk.ti.com>
GBOSS Greg Bossert <bossert@ecto.org>
GEHIC Gerard Hickey <hickey@ctron.com>
GLOVER Mike Glover <glover@credit.erin.utoronto.ca>
GREGG Gregg Helt <gregg@fruitfly.berkeley.edu>
GSAR Gurusamy Sarathy <gsar@umich.edu>
GSM Joe Marzot <gmarzot@baynetworks.com>
GSPAF Gene Spafford <spaf@cs.purdue.edu>
GUYDX Guy Decoux <decoux@moulon.inra.fr>
HALPOM Hal Pomeranz <pomeranz@netcom.com>
HPALM Hartmut Palm <palm@gfz-potsdam.de>
IANPX Ian Phillipps <ian@dial.pipex.com>
ILYAZ Ilya Zakharevich <ilya@math.ohio-state.edu>
JACKS Jack Shirazi <JackS@GemStone.com>
JAMCC Jamie McCarthy <jamie@voyager.net>
JARW John A.R. Williams <J.A.R.Williams@aston.ac.uk>
JCMURPHY Jeff Murphy <jcmurphy@smurfland.cit.buffalo.edu>
JDALLMAN John Dallman <jgd@cix.compulink.co.uk>
JDUNCAN James Duncan <jduncan@hawk.igs.net>
JFRIEDL Jeffrey Friedl <jfriedl@omron.co.jp>
JHI Jarkko Hietaniemi <Jarkko.Hietaniemi@iki.fi>
JKAST Jason Kastner <jkastner@oboe.calpoly.edu>
JKEGL Jeffrey Kegler <jeffrey@best.com>
JLEVAN Jerry LeVan <levan@eagle.eku.edu>
JMAHAN J. Michael Mahan <mahanm@nextwork.rose-hulman.edu>
JMURPHY Joel Murphy <jmurphy@acsu.buffalo.edu>
JOCASA Joe Casadonte <joc@netaxs.com>
JOEHIL Joe Hildebrand <joe.hildebrand@twcable.com >
JONG Jong Park <jong@mrc-lmb.cam.ac.uk>
JONO Jon Orwant <orwant@media.mit.edu>
JPC Jan-Pieter Cornet <johnpc@xs4all.nl>
JPRAVETZ Jim Pravetz <jpravetz@adobe.com>
JROGERS Jay Rogers <jay@ampersand.com>
JSTOF John Stoffel <john@wpi.edu>
JV Johan Vromans <jvromans@squirrel.nl>
JWAT John Watson <jwatson@cnj.digex.net>
KGB Karl Glazebrook <kgb@aaoepp.aao.gov.au>
KJALB Kenneth Albanowski <kjahds@kjahds.com>
KJOHNSON Kevin Johnson <kjj@primenet.com>
KONDO Yoshiyuki KONDO <cond@lsi-j.co.jp>
KRISHPL Krishna Shamu Sethuraman <krishpl@shamu.studio.sgi.com>
KSB Simon Berg <karl@it.kth.se>
LDS Lincoln D. Stein <lstein@genome.wi.mit.edu>
LFINI Luca Fini <lfini@arcetri.astro.it>
LSTAF Lennart Staflin <lenst@lysator.liu.se>
LUKKA Tuomas J. Lukka <Tuomas.Lukka@Helsinki.FI>
LUSOL Stephen O. Lidie <lusol@Lehigh.EDU>
LUTHERH Luther Huffman <lutherh@stratcom.com>
LWALL Larry Wall. Author of Perl. Busy man. <larry@wall.org>
LWWWP The libwww-perl mailing list
Mail to libwww-perl-REQUEST@ics.uci.edu with body
"subscribe"
MAHEX Mark "Hex" Hershberger <mah@cs.tulane.edu>
MAK Martijn Koster <mak@surfski.webcrawler.com>
MARCP Marc Paquette <Marc.Paquette@crim.ca>
MARKB Mark Biggar <mab@wdl.loral.com>
MARTINB Martin Bartlett <martin@nitram.demon.co.uk>
MATTW Matthew M. Wright <mattw@worldwidemart.com>
MCPL The MacPerl mailing list
Mail to mac-perl-REQUEST@iis.ee.ethz.ch with body
"subscribe". There is an announcement-only low-volume
mailing list too with the subscription address
mac-perl-announce-request@iis.ee.ethz.ch.
MDARWIN Matthew Darwin <darwin@loran.com>
MERGL Edmund Mergl <mergl@nadia.s.bawue.de>
MERLYN Randal L. Schwartz <merlyn@stonehenge.com>
MEWP Michael Peppler <mpeppler@bix.com>
MGH Marc Hedlund <hedlund@best.com>
MHM Mike Moran <db2perl@austin.ibm.com>
MICB Malcolm Beattie <mbeattie@sable.ox.ac.uk>
MIKEH Mike Heins <mikeh@iac.net>
MIKESTOK Mike Stok <mike@stok.co.uk>
MJD Mark-Jason Dominus <mjd@plover.com>
MMML The MakeMaker mailing list
Mail to makemaker-REQUEST@franz.ww.tu-berlin.de with body
"subscribe"
MRG Matthew Green <mrg@mame.mu.oz.au>
MRKAE Mark R. Kaehny <kaehny@execpc.com>
MSCHILLI Michael Schilli <schilli@tep.e-technik.tu-muenchen.de>
MSHLD Michael Shields <shields@crosslink.net>
MUIR David Muir Sharnoff <muir@idiom.com>
NEERI Matthias Ulrich Neeracher <neeri@iis.ee.ethz.ch>
NEILB Neil Bowers <neilb@khoral.com>
NEMWS Nem W Schlecht <nem@abattoir.cc.ndsu.nodak.edu>
NI-S Nick Ing-Simmons <nik@tiuk.ti.com>
NICO Nick Gianniotis <nico@acm.org>
NIGELM Nigel Metheringham <Nigel.Metheringham@ThePLAnet.net>
NTHIERY Nicolas Thi駻y <Nicolas.Thiery@ens.fr>
NWINT Neil Winton <nwinton@axion.bt.co.uk>
OZAWA OZAWA Sakuro <ozawa@prince.pe.u-tokyo.ac.jp>
P5P The Perl5 Porters Mailing List
Mail to perl5-porters-REQUEST@nicoh.com with body
"subscribe"
PACKRATS The Packrats Mailing List
Mail to perl-packrats-REQUEST@metronet.com with body
"subscribe"
PATM Pat Martin <pat@bronco.advance.com>
PEASE Mark Pease <peasem@primenet.com>
PEM Peter Murray <pem@po.cwru.edu>
PGPML The PGP Module Mailing List
Mail to majordomo@dbc-mifco.com with body "subscribe
perl-pgp <your-address>"
PGUEN Philip Guenther <guenther@gac.edu>
PKUTS Peter Kutschera <peter@zditr1.arcs.ac.at>
PMQS Paul Marquess <pmarquess@bfsec.bt.co.uk>
PRATP Pratap Pereira <pereira@ee.eng.ohio-state.edu>
PSEIBEL Peter Seibel <seibel@organic.com>
PVANDRY Phillip Vandry <vandry@mlink.net>
PVERD Philippe Verdret <phd@eurolang.fr>
PVHP Peter Prymmer <pvhp@lns62.lns.cornell.edu>
RAM Raphael Manfredi <ram@hptnos02.grenoble.hp.com>
RBOW Richard Bowen <rbowen@rcbowen.com>
RDO Robert Olson <olson@mcs.anl.gov>
RHOFER Robert Hofer <hofer@informatik.uni-muenchen.de>
RIK Rik Harris <rik.harris@fulcrum.com.au>
RJRAY Randy J Ray <rjray@uswest.com>
RJS Robert J Seymour <rseymour@rseymour.com>
RMOSE Russell Mosemann <mose@ns.ccsn.edu>
ROSCH Roderick Schertler <roderick@gate.net>
RSE Ralf S. Engelschall <rse@engelschall.com>
RURBAN Reini Urban <rurban@sbox.tu-graz.ac.at>
RVA Rodger Anderson <rodger@boi.hp.com>
SAMPO Sampo Kellomaki <sampo@neuronio.pt>
SBECK Sullivan Beck <beck@qtp.ufl.edu>
SDOWD Sean Dowd <ssd@mmts.eds.com>
SEB Steven Brenner <S.E.Brenner@bioc.cam.ac.uk>
SEMM Steve Emmerson <support@unidata.ucar.edu>
SGEL Sergio Gelato <gelato@oort.ap.sissa.it>
SHGUN Shishir Gundavaram <shishir@acs.bu.edu>
SHUTTON Scott Hutton <shutton@pobox.com>
SKIMO Sven Verdoolaege <skimo@breughel.ufsia.ac.be>
SKUNZ Steven L. Kunz <skunz@iastate.edu>
SPIDB Spider Boardman <spider@orb.nashua.nh.us>
SPP Stephen P Potter <spp@pencom.com>
SRIRAM Sriram Srinivasan <sriram@tcs.com>
STANM Stan Melax <stan@skyler.arc.ab.ca>
STBEY Steffen Beyer <sb@sdm.de>
SWMCD Steven McDougall <swm@cric.com>
TIMB Tim Bunce <Tim.Bunce@ig.co.uk>
TKML The Tk Perl Mailing list
Mail to majordomo@lists.stanford.edu with body "subscribe
ptk <your-address>"
TLP Travis L Priest <T.L.Priest@LaRC.NASA.GOV>
TOMC Tom Christiansen <tchrist@mox.perl.com>
TOMFA Tom Fawcett <fawcett@nynexst.com>
TOMH Tom Horsley <tom@ssd.csd.harris.com>
TOMZO Tom Zoerner <Tom.Zoerner@informatik.uni-erlangen.de>
TRIAS Fernando Trias <ftrias@helix.fmrco.com>
TSANDERS Tony Sanders <sanders@bsdi.com>
TYEMQ Tye McQueen <tye@metronet.com>
ULPFR Ulrich Pfeifer <pfeifer@ls6.informatik.uni-dortmund.de>
UWEH Uwe Hollerbach <uweh@bu.edu>
VMSML The VMSPerl Mailing list
Mail subscription requests to maintainer at
<bailey@genetics.upenn.edu>
WATANABE Hirofumi Watanabe <watanabe@ase.ptg.sony.co.jp>
WIN32 The Perl for Win32 Mailing list
Mail to majordomo@mail.hip.com with body "subscribe
Perl-Win32 <your-address>"
WINKO Winfried Koenig <win@in.rhein-main.de>
WPS William Setzer <William_Setzer@ncsu.edu>
WSCOT Wayne Scott <wscott@ichips.intel.com>
WTOMPSON Wayne Tompson <Wayne.Thompson@Ebay.Sun.COM>
WYTAN Wei-Yuen Tan <Wei-Yuen_Tan@hip.com>
YASU Yasushi Saito <yasushi@cs.washington.edu>
YLU Luke Y. Lu <ylu@mail.utexas.edu>
YVESP Yves Paindaveine <yp@gr.osf.org>
http://www.khoros.unm.edu/staff/neilb/perl/metaFAQ
http://www.cse.unsw.edu.au/perl/metaFAQ.html
http://web.nexor.co.uk/perl/Meta-FAQ.txt
http://mox.perl.com/perl/faq
ftp://rtfm.mit.edu/pub/usenet/news.answers/perl-faq/
ftp://ftp.uu.net/usenet/news.answers/perl-faq/
ftp://ftp.cis.ufl.edu/pub/perl/doc/FAQ
ftp://ftp.khoros.unm.edu/pub/perl/faq.gz
ftp://ftp.cs.ruu.nl/pub/NEWS.ANSWERS/perl-faq/
ftp://ftp.funet.fi/pub/languages/perl/doc/faq
ftp://src.doc.ic.ac.uk/packages/perl/FAQ
ftp://ftp.delphi.com/pub/mirrors/packages/perl/
ftp://ftp.cdrom.com/pub/perl
ftp://coombs.anu.edu.au/pub/perl
ftp://ftp.cbi.tamucc.edu/pub/duff/Perl
ftp://ftp.demon.co.uk/pub/perl
ftp://ftp.khoros.unm.edu/pub/perl
ftp://ftp.metronet.com/pub/perl
ftp://ftp.uu.net/languages/perl
ftp://ftp.wpi.edu/perl5
ftp://perl.com/pub/perl
ftp://src.doc.ic.ac.uk/packages/perl
ftp://src.doc.ic.ac.uk/packages/perl5
ftp://sungear.mame.mu.oz.au/pub/perl
ご意見、ご要望は、
電子メールまたは
投稿にお願い致します。