[pod] [xml]

NAME

perl - Practical Extraction and Report Language

SYNOPSIS

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] [ -P ] [ -S ] [ -x[dir] ] [ -i[extension] ] [ -e 'command' ] [ -- ] [ programfile ] [ argument ]...

もし Perl が初めてなら、 perlintro から始めるのがよいでしょう; これは初心者のための全体的な導入であり、Perl の豊富なドキュメントの残りを 読むのを助ける、いくらかの背景を提供します。

参照しやすいように Perl のマニュアルは、いくつかの節に分割しています。

Overview

(概観)

    perl		Perl の概観(この章)
    perlintro		初心者のための Perl の手引き
    perltoc		Perl 文書の目次

Tutorials

(チュートリアル)

    perlreftut		Perl リファレンスの短い手引き
    perldsc		Perl データ構造の手引き
    perllol		Perl データ構造: 配列の配列
    perlrequick 	Perl 正規表現クイックスタート
    perlretut		Perl 正規表現のチュートリアル
    perlboot		初心者のための Perl OO チュートリアル
    perltoot		Perl OO チュートリアル、第 1 部
    perltooc		Perl OO チュートリアル、第 2 部
    perlbot		Perl OO トリックと例
    perlstyle		Perl スタイルガイド
    perlcheat		Perl チートシート
    perltrap		不注意による Perl のわな
    perldebtut		Perl デバッグチュートリアル
    perlfaq		Perl でよくある質問と答え
      perlfaq1		Perl に関する一般的な質問
      perlfaq2		Perl の入手と学習
      perlfaq3		プログラミングツール
      perlfaq4		データ操作
      perlfaq5		ファイルとフォーマット
      perlfaq6		正規表現
      perlfaq7		Perl 言語に関することがら
      perlfaq8		システムとの相互作用
      perlfaq9		ネットワーク

Reference Manual

(リファレンスマニュアル)

    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 形式定義
    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 のスレッドのチュートリアル
      perlothrtut	昔の Perl のスレッドのチュートリアル
    perlport		Perl の移植性ガイド
    perllocale		Perl のロケール対応
    perluniintro	Perl の Unicode の紹介
    perlunicode 	Perl の Unicode 対応
    perlunifaq		Perl の Unicode FAQ
    perlunitut		Perl の Unicode のチュートリアル
    perlebcdic		EBCDIC プラットフォームで Perl を実行する際の検討材料
    perlsec		Perl のセキュリティ
    perlmod		Perl モジュール: どのように動作するか
    perlmodlib		Perl モジュール: 書き方と使い方
    perlmodstyle	Perl モジュール: 上品なモジュールの書き方
    perlmodinstall	Perl モジュール: CPAN からのインストールの仕方
    perlnewmod		Perl モジュール: 新しいモジュールの配布の準備
    perlpragma		Perl モジュール: ユーザープラグマを書く
    perlutil		Perl 配布に含まれるユーティリティ
    perlcompile 	Perl コンパイラ機能の紹介
    perlfilter		Perl ソースフィルタ
    perlglossary	Perl 用語集

Internals and C Language Interface

(内部と C 言語インターフェース)

    perlembed		C や C++ のアプリケーションに perl を組み込む方法
    perldebguts 	Perl デバッグの内部と小技
    perlxstut		Perl XS のチュートリアル
    perlxs		Perl XS アプリケーションプログラミングインターフェース
    perlclib		標準 C ライブラリ関数の内部置換
    perlguts		エクステンションのための Perl の内部関数
    perlcall		C からの Perl 呼び出し仕様
    perlreapi		Perl 正規表現プラグインインターフェース
    perlreguts		Perl 正規表現エンジンの内部
    perlapi		Perl API 一覧 (自動生成)
    perlintern		Perl 内部関数 (自動生成)
    perliol		I/O 層の Perl での実装のための C API
    perlapio		Perl 内部l I/O 抽象インターフェース
    perlhack		Perl ハッカーズガイド

Miscellaneous

(その他)

    perlbook		Perl の書籍情報
    perlcommunity	Perl のコミュニティ情報
    perltodo		Perl の「することリスト」
    perldoc		Pod 形式の Perl ドキュメントを見る
    perlhist		Perl の歴史の記録
    perldelta		Perl の前回のバージョンからの変更点
    perl595delta	Perl の変更点: バージョン 5.9.5
    perl594delta	Perl の変更点: バージョン 5.9.4
    perl593delta	Perl の変更点: バージョン 5.9.3
    perl592delta	Perl の変更点: バージョン 5.9.2
    perl591delta	Perl の変更点: バージョン 5.9.1
    perl590delta	Perl の変更点: バージョン 5.9.0
    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
    perl573delta	Perl の変更点: バージョン 5.7.3
    perl572delta	Perl の変更点: バージョン 5.7.2
    perl571delta	Perl の変更点: バージョン 5.7.1
    perl570delta	Perl の変更点: バージョン 5.7.0
    perl561delta	Perl の変更点: バージョン 5.6.1
    perl56delta 	Perl の変更点: バージョン 5.6
    perl5005delta	Perl の変更点: バージョン 5.005
    perl5004delta	Perl の変更点: バージョン 5.004
    perlartistic	Perl Artistic License
    perlgpl		GNU General Public License

Language-Specific

(言語特有)

    perlcn		Perl 情報: 簡体中国語 (EUC-CN)
    perljp		Perl 情報: 日本語 (EUC-JP)
    perlko		Perl 情報: 韓国語 (EUC-KR)
    perltw		Perl 情報: 繁体中国語 (Big5)

Platform-Specific

(プラットフォーム特有)

    perlaix		Perl 情報: AIX
    perlamiga		Perl 情報: AmigaOS
    perlapollo		Perl 情報: Apollo DomainOS
    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
    perlhpux		Perl 情報: HP-UX
    perlhurd		Perl 情報: Hurd
    perlirix		Perl 情報: Irix
    perllinux		Perl 情報: Linux
    perlmachten 	Perl 情報: Power MachTen
    perlmacos		Perl 情報: Mac OS (Classic)
    perlmacosx		Perl 情報: Mac OS X
    perlmint		Perl 情報: MiNT
    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

デフォルトでは、上述した man ページは /usr/local/man/ ディレクトリに インストールされます。

Perl モジュールのための豊富な追加のドキュメントが利用可能です。 perl のデフォルト設定では追加のドキュメントは /usr/local/lib/perl5/man ディレクトリ (あるいは Perl ライブラリ ディレクトリの man サブディレクトリ)にあります。 この追加ドキュメントは Perl の標準配布に含まれているものもありますが、 サードパーティモジュールのドキュメントもここにあります。

適切なディレクトリを適切なスタートアップファイルか MANPATH 環境変数に 追加することで、Perl のドキュメントを man(1) プログラムで見られるように することができます。 どこに man ページがインストールされる設定かを見るには、以下のように してください:

    perl -V:man.dir

/usr/local/man/man1 と /usr/local/man/man3 のように、ディレクトリに 途中まで共通の部分がある場合は、共通の部分 (/usr/local/man) だけを man(1) 設定ファイルか MANPATH 環境変数に設定するだけですみます。 共通の部分がない場合は、両方を追加する必要があります。

もしこれが何らかの理由で動作しない場合、モジュール情報を見るための perldoc スクリプトも使えます。 あるいは、man プログラムの代替を探す手もあります。

プログラムの実行時に何か変なことが起こって、どこを参照したら よいかわからない場合には、取り敢えず -w スイッチを試してみてください。 これで、問題か所を特定できる場合も、多々あります。

DESCRIPTION

Perl は、テキストファイルを読み取り、そこから情報を引き出し、 その情報を元に様々な報告を行なうように設計された言語です。 また、多くのシステムマネジメントの作業を行なうのに 適した言語でもあります。 この言語は、綺麗さ (小規模、エレガント、最少) ではなく、 実用性 (使い易さ、効率、完全性) を目指しています。

Perl は、(少なくとも作者の意見では) C, sed, awk, sh の良い部分を 組み合わせているので、これらの言語に馴染みのある方には、それほど 難しいものではないでしょう。 (言語歴史学者はまた、csh, Pascal あるいは BASIC-PLUS の痕跡にも 気付くかもしれません。) 式の構文は、C の式の構文に対応したものとなっています。 多くの UNIX のユーティリティとは違って、Perl はデータの大きさに 恣意的な制限を設けません。 つまり Perl では、メモリさえ十分にあれば、ファイルを丸ごと 1 つの 文字列に入れてしまうこともできます。 再帰の深さにも制限がありません。 また、ハッシュ(「連想配列」と呼ばれることもあります)が使用するテーブルは、 パフォーマンスを損なわないように、必要に応じて、自動的に大きくなります。 Perl では、大量のデータをすばやく走査できるように、工夫を凝らした パターンマッチの技術が使えます。 テキストの走査のために設計されてはいますが、Perl では、 バイナリデータを扱うこともできますし、 dbm ファイルをハッシュのようにして扱うこともできるようになっています。 データフロートレース機構を使って、単純ミスによるセキュリティホールを 塞ぐようにしているため、多くの場合、setuid Perl スクリプトは C の プログラムよりも安全です。

普通は sedawksh で書くような問題でも、少し荷が 重すぎるようなとき、多少でも実行速度を速くしなければならないときや、 C で書く程でもないときには、Perl が最適でしょう。 また、sedawk のスクリプトを Perl のスクリプトに変換する トランスレータも用意されています。

ちょっと待ってください、まだあります…

1993 年から(perlhist を参照してください)、Perl バージョン 5 は、 以下のようなことを追加するためにほとんど全て書き直しています:

さあ、誇大広告にはこれくらいにしましょう。

AVAILABILITY

Perl は事実上全ての Unix 風プラットフォームを含む、ほとんどの OS で 利用可能です。 一覧については perlport/"Supported Platforms" を参照してください。

ENVIRONMENT

perlrun を参照してください。

AUTHOR

Larry Wall <larry@wall.org>; 多くの方の助力を得つつ。

もしあなたの Perl に関する成功物語と推薦状が、アプリケーションに Perl を 使うことを推奨したいと願っている他の人々の助けになると考えたなら、 あるいは単に Larry と Perl 開発者に感謝の意を伝えたいなら、 perl-thanks@perl.org に送ってください。

FILES

 "@INC"                 perl ライブラリの位置

SEE ALSO

 a2p    awk から perl へのトランスレータ
 s2p    sed から 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

DIAGNOSTICS

use warnings プラグマ (および -w スイッチ)は、 幾分わかりやすい診断メッセージを出します。

すべての Perl の診断メッセージについては、perldiag を 参照してください。 use diagnostics プラグマは、Perl の通常の簡潔な警告とエラーを自動的に より長い形式に変更します。

コンパイル時のエラーでは、エラーの起こった行番号に、次に 調べられるはずだったトークンかトークンの型を示します。 (スクリプトが -e スイッチで Perl に渡される場合には、-e スイッチ 1 つが 1 行とカウントされます。)

setuid スクリプトでは、制限事項が増えるため、"Insecure dependency" と いったエラーメッセージが表示されることがあります。 perlsec を参照してください。

絶対に -w スイッチを使った方が良いっていうのは、もう書きましたっけ?

BUGS

-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) を意味していますが、私がそういった 事をばらしてはいけません。

NOTES

Perl のモットーは「やり方は 1 通りではない。」ということです。 このマニュアルを、後いくつに分割できるかは、宿題とします。

プログラマの 3 つの美徳は、無精、短気、傲慢です。 理由は、ラクダ本を参照してください。