NAME

perl - Perl 5 言語インタプリタ


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]
-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 用語集

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

    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 スイッチを試してみてください。 これで、問題か所を特定できる場合も、多々あります。


DESCRIPTION

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 は、 以下のようなことを追加するためにほとんど全て書き直しています:

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


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

 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 つの美徳は、無精、短気、傲慢です。 理由は、ラクダ本を参照してください。