perl - Perl 5 言語インタプリタ
perl | [ -sTtuUWX ] |
[ -hv ] [ -V[:configvar] ] | |
[ -cw ] [ -d[t][:debugger] ] [ -D[number/list] ] | |
[ -pna ] [ -Fpattern ] [ -l[octal] ] [ -0[octal/hexadecimal] ] | |
[ -Idir ] [ -m[-]module ] [ -M[-]'module...' ] [ -f ] | |
[ -C [number/list] ] | |
[ -S ] | |
[ -x[dir] ] | |
[ -i[extension] ] | |
[ [-e|-E] 'command' ] [ -- ] [ programfile ] [ argument ]... |
perldoc プログラムは、Perl と共に配布されている全ての文書を読むための プログラムです。 http://www.perl.org/ では、さらなる文書、チュートリアル、コミュニティ サポポートがオンラインで得られます。
もし Perl が初めてなら、perldoc perlintro
を実行することから
始めるのがよいでしょう;
これは初心者のための全体的な導入であり、Perl の豊富なドキュメントの残りを
読むのを助ける、いくらかの背景を提供します。
perldoc でできることを学ぶには、perldoc perldoc
を実行してください。
参照しやすいように Perl のマニュアルは、いくつかの節に分割しています。
perl Perl の概観(この章) perlintro 初心者のための Perl の手引き perltoc Perl 文書の目次
perlreftut Perl リファレンスの短い手引き perldsc Perl データ構造の手引き perllol Perl データ構造: 配列の配列
perlrequick Perl 正規表現クイックスタート perlretut Perl 正規表現のチュートリアル
perlootut 初心者のための Perl OO チュートリアル
perlperf Perl のパフォーマンスと最適化のテクニック
perlstyle Perl スタイルガイド
perlcheat Perl チートシート perltrap 不注意による Perl のわな perldebtut Perl デバッグチュートリアル
perlfaq Perl でよくある質問と答え perlfaq1 Perl に関する一般的な質問 perlfaq2 Perl の入手と学習 perlfaq3 プログラミングツール perlfaq4 データ操作 perlfaq5 ファイルとフォーマット perlfaq6 正規表現 perlfaq7 Perl 言語に関することがら perlfaq8 システムとの相互作用 perlfaq9 ネットワーク
perlsyn Perl の文法 perldata Perl のデータ構造 perlop Perl の演算子と優先順位 perlsub Perl のサブルーチン perlfunc Perl の組み込み関数 perlopentut Perl の open() のチュートリアル perlpacktut Perl の pack() と unpack() のチュートリアル perlpod Perl plain old documentation perlpodspec Perl plain old documentation 形式定義 perlpodstyle Perl POD スタイルガイド perlrun Perl の実行とオプション perldiag Perl の診断メッセージ perllexwarn Perl の警告とその制御 perldebug Perl のデバッグ perlvar Perl の定義済み変数 perlre Perl 正規表現; その他の話題 perlrebackslash Perl 正規表現バックスラッシュシーケンス perlrecharclass Perl 正規表現文字クラス perlreref Perl 正規表現クイックリファレンス perlref Perl のリファレンス; その他の話題 perlform Perl のフォーマット perlobj Perl のオブジェクト perltie Perl の、単純な変数に隠されたオブジェクト perldbmfilter Perl DBM フィルタ
perlipc Perl のプロセス間通信 perlfork Perl の fork() 情報 perlnumber Perl の数値の意味論
perlthrtut Perl のスレッドのチュートリアル
perlport Perl の移植性ガイド perllocale Perl のロケール対応 perluniintro Perl の Unicode の紹介 perlunicode Perl の Unicode 対応 perlunifaq Perl の Unicode FAQ perluniprops Perl での Unicode バージョン 6.0.0 特性の一覧 perlunitut Perl の Unicode のチュートリアル perlebcdic EBCDIC プラットフォームで Perl を実行する際の検討材料
perlsec Perl のセキュリティ
perlmod Perl モジュール: どのように動作するか perlmodlib Perl モジュール: 書き方と使い方 perlmodstyle Perl モジュール: 上品なモジュールの書き方 perlmodinstall Perl モジュール: CPAN からのインストールの仕方 perlnewmod Perl モジュール: 新しいモジュールの配布の準備 perlpragma Perl モジュール: ユーザープラグマを書く
perlutil Perl 配布に含まれるユーティリティ
perlfilter Perl ソースフィルタ
perldtrace Perl の DTrace 対応
perlglossary Perl 用語集
perlembed C や C++ のアプリケーションに perl を組み込む方法 perldebguts Perl デバッグの内部と小技 perlxstut Perl XS のチュートリアル perlxs Perl XS アプリケーションプログラミングインターフェース perlxstypemap Perl XS C/Perl 型変換ツール perlclib 標準 C ライブラリ関数の内部置換 perlguts エクステンションのための Perl の内部関数 perlcall C からの Perl 呼び出し仕様 perlmroapi Perl メソッド解決プラグインインターフェース perlreapi Perl 正規表現プラグインインターフェース perlreguts Perl 正規表現エンジンの内部
perlapi Perl API 一覧 (自動生成) perlintern Perl 内部関数 (自動生成) perliol I/O 層の Perl での実装のための C API perlapio Perl 内部l I/O 抽象インターフェース
perlhack Perl ハッカーズガイド perlsource Perl ソースツリーのガイド perlinterp Perl インタプリタの概略と、どのように動作するか perlhacktut 簡単な C コードパッチ作成のウォークスルー perlhacktips Perl コア C コードをハッキングするときの小技 perlpolicy Perl 開発ポリシー perlgit Perl リポジトリで git を使う
perlbook Perl の書籍情報 perlcommunity Perl のコミュニティ情報 perltodo Perl の「することリスト」
perldoc Pod 形式の Perl ドキュメントを見る
perlhist Perl の歴史の記録 perldelta Perl の前回のバージョンからの変更点 perl5160delta Perl の変更点: バージョン 5.16.0 perl5160delta Perl の変更点: バージョン 5.16.0 perl5142delta Perl の変更点: バージョン 5.14.2 perl5141delta Perl の変更点: バージョン 5.14.1 perl5140delta Perl の変更点: バージョン 5.14.0 perl5124delta Perl の変更点: バージョン 5.12.4 perl5123delta Perl の変更点: バージョン 5.12.3 perl5122delta Perl の変更点: バージョン 5.12.2 perl5121delta Perl の変更点: バージョン 5.12.1 perl5120delta Perl の変更点: バージョン 5.12.0 perl5101delta Perl の変更点: バージョン 5.10.1 perl5100delta Perl の変更点: バージョン 5.10.0 perl589delta Perl の変更点: バージョン 5.8.9 perl588delta Perl の変更点: バージョン 5.8.8 perl587delta Perl の変更点: バージョン 5.8.7 perl586delta Perl の変更点: バージョン 5.8.6 perl585delta Perl の変更点: バージョン 5.8.5 perl584delta Perl の変更点: バージョン 5.8.4 perl583delta Perl の変更点: バージョン 5.8.3 perl582delta Perl の変更点: バージョン 5.8.2 perl581delta Perl の変更点: バージョン 5.8.1 perl58delta Perl の変更点: バージョン 5.8.0 perl561delta Perl の変更点: バージョン 5.6.1 perl56delta Perl の変更点: バージョン 5.6 perl5005delta Perl の変更点: バージョン 5.005 perl5004delta Perl の変更点: バージョン 5.004
perlexperiment Perl の実験的機能の一覧
perlartistic Perl Artistic License perlgpl GNU General Public License
perlcn Perl 情報: 簡体中国語 (EUC-CN) perljp Perl 情報: 日本語 (EUC-JP) perlko Perl 情報: 韓国語 (EUC-KR) perltw Perl 情報: 繁体中国語 (Big5)
perlaix Perl 情報: AIX perlamiga Perl 情報: AmigaOS perlbeos Perl 情報: BeOS perlbs2000 Perl 情報: POSIX-BC BS2000 perlce Perl 情報: WinCE perlcygwin Perl 情報: Cygwin perldgux Perl 情報: DG/UX perldos Perl 情報: DOS perlepoc Perl 情報: EPOC perlfreebsd Perl 情報: FreeBSD perlhaiku Perl 情報: Haiku perlhpux Perl 情報: HP-UX perlhurd Perl 情報: Hurd perlirix Perl 情報: Irix perllinux Perl 情報: Linux perlmacos Perl 情報: Mac OS (Classic) perlmacosx Perl 情報: Mac OS X perlmpeix Perl 情報: MPE/iX perlnetware Perl 情報: NetWare perlopenbsd Perl 情報: OpenBSD perlos2 Perl 情報: OS/2 perlos390 Perl 情報: OS/390 perlos400 Perl 情報: OS/400 perlplan9 Perl 情報: Plan 9 perlqnx Perl 情報: QNX perlriscos Perl 情報: RISC OS perlsolaris Perl 情報: Solaris perlsymbian Perl 情報: Symbian perltru64 Perl 情報: Tru64 perluts Perl 情報: UTS perlvmesa Perl 情報: VM/ESA perlvms Perl 情報: VMS perlvos Perl 情報: Stratus VOS perlwin32 Perl 情報: Windows
perlboot perlbot perltodo perltooc perltoot
Unix 風のシステムでは、これらの文書は普通は man プログラムで使える man ページとしても提供されます。
一般的に、プログラムの実行時に何か変なことが起こって、どこを参照したら よいかわからない場合には、まず -w スイッチを試してみてください。 これで、問題か所を特定できる場合も、多々あります。
Perl は公式には "Practical Extraction and Report Language" の略ですが、 そうでない場合もあります。
Perl は元々テキストファイルを読み取り、そこから情報を引き出し、 その情報を元に様々な報告を行なうように設計された言語でした。 そして急速に多くのシステムマネジメントの作業を行なうのに 適した言語になりました。 年を重ねるにつれて、Perl は汎用プログラミング言語に成長しました。 簡単な「一行野郎」からフルスケールのアプリケーション開発まで あらゆることに広く使われています。
この言語は、綺麗さ (小規模、エレガント、最少) ではなく、 実用性 (使い易さ、効率、完全性) を目指しています。
Perl は、(少なくとも作者の意見では) C, sed, awk, sh の良い部分を 組み合わせているので、これらの言語に馴染みのある方には、それほど 難しいものではないでしょう。 (言語歴史学者はまた、csh, Pascal あるいは BASIC-PLUS の痕跡にも 気付くかもしれません。) 式の構文は、C の式の構文に対応したものとなっています。 多くの UNIX のユーティリティとは違って、Perl はデータの大きさに 恣意的な制限を設けません。 つまり Perl では、メモリさえ十分にあれば、ファイルを丸ごと 1 つの 文字列に入れてしまうこともできます。 再帰の深さにも制限がありません。 また、ハッシュ(「連想配列」と呼ばれることもあります)が使用するテーブルは、 パフォーマンスを損なわないように、必要に応じて、自動的に大きくなります。 Perl では、大量のデータをすばやく走査できるように、工夫を凝らした パターンマッチの技術が使えます。 Perl はテキストの走査のために最適化されてはいますが、 バイナリデータを切り刻むための多くの素晴らしいツールもあります。
ちょっと待ってください、まだあります…
1993 年から(perlhist を参照してください)、Perl バージョン 5 は、 以下のようなことを追加するためにほとんど全て書き直しています:
無数のモジュールによるモジュール性と再利用性
perlmod, perlmodlib, perlmodinstall に記述しています。
組み込み容易性と拡張性
perlembed, perlxstut, perlxs, perlxstypemap, perlcall, perlguts, xsubpp に記述しています。
(多重同期 DBM 実装を含む) 自分自身の役割を行うマジカル変数
perltie と AnyDBM_File に記述しています。
サブルーチン定義がオーバライド、オートロード、プロトタイプ宣言可能に
perlsub に記述しています。
任意の多重データ構造と無名関数
perlreftut, perlref, perldsc, perllol に記述しています。
オブジェクト指向プログラミング
perlobj と perlootut に記述しています。
軽量プロセス(スレッド)対応
perlthrtut と threads に記述しています。
Unicode、国際化、地域化対応
perluniintro, perllocale, Locale::Maketext に記述しています。
レキシカルスコープ
perlsub に記述しています。
正規表現の拡張
perlre に記述しています; 追加の例が perlop にあります。
統合エディタ対応付きの強化デバッガと対話的 Perl 環境
perldebtut, perldebug, perldebguts に記述しています。
POSIX 1003.1 準拠ライブラリ
POSIX に記述しています。
さあ、誇大広告にはこれくらいにしましょう。
Perl は事実上全ての Unix 風プラットフォームを含む、ほとんどの OS で 利用可能です。 一覧については perlport/"Supported Platforms" を参照してください。
perlrun を参照してください。
Larry Wall <larry@wall.org>; 多くの方の助力を得つつ。
もしあなたの Perl に関する成功物語と推薦状が、アプリケーションに Perl を 使うことを推奨したいと願っている他の人々の助けになると考えたなら、 あるいは単に Larry と Perl 開発者に感謝の意を伝えたいなら、 perl-thanks@perl.org に送ってください。
"@INC" perl ライブラリの位置
http://www.perl.org/ the Perl homepage http://www.perl.com/ Perl articles (O'Reilly) http://www.cpan.org/ the Comprehensive Perl Archive http://www.pm.org/ the Perl Mongers
use warnings
プラグマ (および -w スイッチ)は、
幾分わかりやすい診断メッセージを出します。
すべての Perl の診断メッセージについては、perldiag を
参照してください。
use diagnostics
プラグマは、Perl の通常の簡潔な警告とエラーを自動的に
より長い形式に変更します。
コンパイル時のエラーでは、エラーの起こった行番号に、次に 調べられるはずだったトークンかトークンの型を示します。 (スクリプトが -e スイッチで Perl に渡される場合には、-e スイッチ 1 つが 1 行とカウントされます。)
setuid スクリプトでは、制限事項が増えるため、"Insecure dependency" と いったエラーメッセージが表示されることがあります。 perlsec を参照してください。
絶対に -w スイッチを使った方が良いっていうのは、もう書きましたっけ?
-w スイッチが必須になっていません。
Perl は型のキャスト、atof()、sprintf() による浮動小数点出力のような 様々な操作のマシンごとの定義に依存します。
使用している標準入出力ライブラリが、read と write の間に
seek や eof が必要なものであれば、Perl でも同様となります。
(ただし、sysread() や syswrite()
には適用されません。)
組み込みのデータ型には (メモリサイズからくるものを除いて) 恣意的な サイズの制限はありませんが、それでもいくつかの恣意的制限は存在します: どの変数名も 251 文字より長くてはなりません。 診断で表示される行番号は内部的に short 整数で保管しているので、その 最大値は 65535 に制限されます(より大きな数値は普通回り込みの影響を受けます)。
バグレポートは perlbug@perl.org に送ってください
(perl ソースツリーにある myconfig プログラムか perl -V
で出力される
完全な設定情報を含めることを忘れないでください)。
もし perl のコンパイルに成功しているなら、utils/ サブディレクトリにある
perlbug が、バグレポートをメールする助けとして使えます。
Perl は本当は「病的折衷主義ガラクタ出力機」(Pathologically Eclectic Rubbish Lister) を意味していますが、私がそういった 事をばらしてはいけません。
Perl のモットーは「やり方は 1 通りではない。」ということです。 このマニュアルを、後いくつに分割できるかは、宿題とします。
プログラマの 3 つの美徳は、無精、短気、傲慢です。 理由は、ラクダ本を参照してください。