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 perlrun を 実行してください。

ヘルプを見る

perldoc プログラムは、Perl と共に配布されている全ての文書を読むための プログラムです。 https://www.perl.org/ では、さらなる文書、チュートリアル、コミュニティ サポートがオンラインで得られます。

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

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

概観

    perl                Perl の概観(この章)
    perlintro           初心者のための Perl の手引き
    perlrun             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 形式定義
    perldocstyle        Perl コア文書のスタイルガイド
    perlpodstyle        Perl POD スタイルガイド
    perldiag            Perl の診断メッセージ
    perldeprecation     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 対応
    perlunicook         Perl Unicode クックブック
    perlunifaq          Perl の Unicode FAQ
    perluniprops        Perl での Unicode 特性の一覧
    perlunitut          Perl の Unicode のチュートリアル
    perlebcdic          EBCDIC プラットフォームで Perl を実行する際の検討材料

    perlsec             Perl のセキュリティ
    perlsecpolicy       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 開発ポリシー
    perlgov             Perl の統治規則
    perlgit             Perl リポジトリで git を使う

歴史

    perlhist            Perl の歴史の記録
    perldelta           Perl の前回のバージョンからの変更点
    perl5321delta       Perl の変更点: バージョン 5.32.1
    perl5320delta       Perl の変更点: バージョン 5.32.0
    perl5303delta       Perl の変更点: バージョン 5.30.3
    perl5302delta       Perl の変更点: バージョン 5.30.2
    perl5301delta       Perl の変更点: バージョン 5.30.1
    perl5300delta       Perl の変更点: バージョン 5.30.0
    perl5283delta       Perl の変更点: バージョン 5.28.3
    perl5282delta       Perl の変更点: バージョン 5.28.2
    perl5281delta       Perl の変更点: バージョン 5.28.1
    perl5280delta       Perl の変更点: バージョン 5.28.0
    perl5263delta       Perl の変更点: バージョン 5.26.3
    perl5262delta       Perl の変更点: バージョン 5.26.2
    perl5261delta       Perl の変更点: バージョン 5.26.1
    perl5260delta       Perl の変更点: バージョン 5.26.0
    perl5244delta       Perl の変更点: バージョン 5.24.4
    perl5243delta       Perl の変更点: バージョン 5.24.3
    perl5242delta       Perl の変更点: バージョン 5.24.2
    perl5241delta       Perl の変更点: バージョン 5.24.1
    perl5240delta       Perl の変更点: バージョン 5.24.0
    perl5224delta       Perl の変更点: バージョン 5.22.4
    perl5223delta       Perl の変更点: バージョン 5.22.3
    perl5222delta       Perl の変更点: バージョン 5.22.2
    perl5221delta       Perl の変更点: バージョン 5.22.1
    perl5220delta       Perl の変更点: バージョン 5.22.0
    perl5203delta       Perl の変更点: バージョン 5.20.3
    perl5202delta       Perl の変更点: バージョン 5.20.2
    perl5201delta       Perl の変更点: バージョン 5.20.1
    perl5200delta       Perl の変更点: バージョン 5.20.0
    perl5184delta       Perl の変更点: バージョン 5.18.4
    perl5182delta       Perl の変更点: バージョン 5.18.2
    perl5181delta       Perl の変更点: バージョン 5.18.1
    perl5180delta       Perl の変更点: バージョン 5.18.0
    perl5163delta       Perl の変更点: バージョン 5.16.3
    perl5162delta       Perl の変更点: バージョン 5.16.2
    perl5161delta       Perl の変更点: バージョン 5.16.1
    perl5160delta       Perl の変更点: バージョン 5.16.0
    perl5144delta       Perl の変更点: バージョン 5.14.4
    perl5143delta       Perl の変更点: バージョン 5.14.3
    perl5142delta       Perl の変更点: バージョン 5.14.2
    perl5141delta       Perl の変更点: バージョン 5.14.1
    perl5140delta       Perl の変更点: バージョン 5.14.0
    perl5125delta       Perl の変更点: バージョン 5.12.5
    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

その他

    perlbook            Perl の書籍情報
    perlcommunity       Perl のコミュニティ情報

    perldoc             Pod 形式の Perl ドキュメントを見る

    perlexperiment      Perl の実験的機能の一覧

    perlartistic        Perl Artistic License
    perlgpl             GNU General Public License

言語特有

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

プラットフォーム特有

    perlaix             Perl 情報: AIX
    perlamiga           Perl 情報: AmigaOS
    perlandroid         Perl 情報: Android
    perlbs2000          Perl 情報: POSIX-BC BS2000
    perlcygwin          Perl 情報: Cygwin
    perldos             Perl 情報: DOS
    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
    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
    perlsynology        Perl 情報: Synology
    perltru64           Perl 情報: Tru64
    perlvms             Perl 情報: VMS
    perlvos             Perl 情報: Stratus VOS
    perlwin32           Perl 情報: Windows

削除された文書のスタブ

    perlboot            
    perlbot             
    perlrepository
    perltodo
    perltooc            
    perltoot            

Unix 風のシステムでは、これらの文書は普通は man プログラムで使える man ページとしても提供されます。

一部の文書は man ページでは利用できないので、man によってクロスリファレンスが 見つからなかった場合は、perldoc で試してください。 perldoc は (-f スイッチで) 関数の文書を直接得ることもできます。 perldoc が提供するその他の有用なオプションについては perldoc --help (または perldoc perldoc または man perldoc) を 参照してください。

一般的に、プログラムの実行時に何か変なことが起こって、どこを参照したら よいかわからない場合には、まずコードを use strictuse warnings で 動作するようにしてみてください。 これで、問題の箇所を特定できる場合も、多々あります。

DESCRIPTION

Perl は公式には "Practical Extraction and Report Language" の略ですが、 そうでない場合もあります。

Perl は元々テキストファイルを読み取り、そこから情報を引き出し、 その情報を元に様々な報告を行なうように設計された言語でした。 そして急速に多くのシステムマネジメントの作業を行なうのに 適した言語になりました。 年を重ねるにつれて、Perl は汎用プログラミング言語に成長しました。 簡単な「一行野郎」からフルスケールのアプリケーション開発まで あらゆることに広く使われています。

この言語は、綺麗さ (小規模、エレガント、最少) ではなく、 実用性 (使い易さ、効率、完全性) を目指しています。 これは (少なくとも作者の意見では) sed, awk, sh の良い部分を 組み合わせているので、Unix ユーザーが面倒な問題を素早く解決することが わかりやすく簡単になっています。 この汎用プログラミング機構は手続き的、関数的、オブジェクト指向 プログラミングパラダイムに対応しているので、あなたの傾向に関わらず、 主なプロジェクトでの長期戦に対して快適な言語になっています。

テキスト処理での Perl の根本は長年忘れられていませんでした。 どこでも見られる最も強力な正規表現の一部は今でも誇りとしていますし、 その Unicode 対応はワールドクラスです。 あらゆる種類の構造化テキストも、広範囲なエクステンションのコレクションを 通して扱います。 CPAN で収集されているこれらのライブラリは、驚くべき大量の問題への 準備された解法を提供します。 自分自身で標準を設定していないときは、(Perl 自身と同様) 最良のものから 盗んでいます。

AVAILABILITY

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

ENVIRONMENT

"ENVIRONMENT" in perlrun を参照してください。

AUTHOR

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

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

FILES

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

前述の "@INC" は同じ名前の組み込み変数への参照です; さらなる情報については perlvar を参照してください。

SEE ALSO

 https://www.perl.org/       the Perl homepage
 https://www.perl.com/       Perl articles
 https://www.cpan.org/       the Comprehensive Perl Archive
 https://www.pm.org/         the Perl Mongers

DIAGNOSTICS

use strict プラグマを使うことで、全ての変数が適切に宣言されていて、 その他の昔の Perl の機能を間違って使わないようにできます。

use warnings プラグマはいくらかわかりやすい診断メッセージを出します。 -w フラグも使えますが、これは一般的には非推奨です; あなたの支配下に ないものを含む、実行される全ての Perl コードに適用されるからです。

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

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

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

絶対に use warnings プラグマ を使った方が良いっていうのは、もう 書きましたっけ?

BUGS

use warnings プラグマが意味する振る舞いが必須になっていません。

Perl は型のキャスト、atof()、sprintf() による浮動小数点出力のような 様々な操作のマシンごとの定義に依存します。

使用している標準入出力ライブラリが、read と write の間に seek や eof が必要なものであれば、Perl でも同様となります。 (ただし、sysread() や syswrite() には適用されません。)

組み込みのデータ型には (メモリサイズからくるものを除いて) 恣意的な サイズの制限はありませんが、それでもいくつかの恣意的制限は存在します: どの変数名も 251 文字より長くてはなりません。 診断で表示される行番号は内部的に short 整数で保管しているので、その 最大値は 65535 に制限されます(より大きな数値は普通回り込みの影響を受けます)。

バグレポートは https://github.com/Perl/perl5/issues に 登録してください (perl ソースツリーにある myconfig プログラムか perl -V で出力される 完全な設定情報を含めることを忘れないでください)。

Perl は本当は「病的折衷主義ガラクタ出力機」(Pathologically Eclectic Rubbish Lister) を意味していますが、私がそう言った 事をばらしてはいけません。

NOTES

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

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