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 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 用語集
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 strict と use warnings で 動作するようにしてみてください。 これで、問題の箇所を特定できる場合も、多々あります。
Perl は公式には "Practical Extraction and Report Language" の略ですが、 そうでない場合もあります。
Perl は元々テキストファイルを読み取り、そこから情報を引き出し、 その情報を元に様々な報告を行なうように設計された言語でした。 そして急速に多くのシステムマネジメントの作業を行なうのに 適した言語になりました。 年を重ねるにつれて、Perl は汎用プログラミング言語に成長しました。 簡単な「一行野郎」からフルスケールのアプリケーション開発まで あらゆることに広く使われています。
この言語は、綺麗さ (小規模、エレガント、最少) ではなく、 実用性 (使い易さ、効率、完全性) を目指しています。 これは (少なくとも作者の意見では) sed, awk, sh の良い部分を 組み合わせているので、Unix ユーザーが面倒な問題を素早く解決することが わかりやすく簡単になっています。 この汎用プログラミング機構は手続き的、関数的、オブジェクト指向 プログラミングパラダイムに対応しているので、あなたの傾向に関わらず、 主なプロジェクトでの長期戦に対して快適な言語になっています。
テキスト処理での Perl の根本は長年忘れられていませんでした。 どこでも見られる最も強力な正規表現の一部は今でも誇りとしていますし、 その Unicode 対応はワールドクラスです。 あらゆる種類の構造化テキストも、広範囲なエクステンションのコレクションを 通して扱います。 CPAN で収集されているこれらのライブラリは、驚くべき大量の問題への 準備された解法を提供します。 自分自身で標準を設定していないときは、(Perl 自身と同様) 最良のものから 盗んでいます。
Perl は事実上全ての Unix 風プラットフォームを含む、ほとんどの OS で 利用可能です。 一覧については "Supported Platforms" in perlport を参照してください。
"ENVIRONMENT" in perlrun を参照してください。
Larry Wall <larry@wall.org>; 多くの方の助力を得つつ。
もしあなたの Perl に関する成功物語と推薦状が、アプリケーションに Perl を 使うことを推奨したいと願っている他の人々の助けになると考えたなら、 あるいは単に Larry と Perl 開発者に感謝の意を伝えたいなら、 perl-thanks@perl.org に送ってください。
"@INC" perl ライブラリの位置
前述の "@INC" は同じ名前の組み込み変数への参照です; さらなる情報については perlvar を参照してください。
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
use strict
プラグマを使うことで、全ての変数が適切に宣言されていて、 その他の昔の Perl の機能を間違って使わないようにできます。
use warnings
プラグマはいくらかわかりやすい診断メッセージを出します。 -w フラグも使えますが、これは一般的には非推奨です; あなたの支配下に ないものを含む、実行される全ての Perl コードに適用されるからです。
すべての Perl の診断メッセージについては、perldiag を 参照してください。 use diagnostics
プラグマは、Perl の通常の簡潔な警告とエラーを自動的に より長い形式に変更します。
コンパイル時のエラーでは、エラーの起こった行番号に、次に 調べられるはずだったトークンかトークンの型を示します。 (スクリプトが -e スイッチで Perl に渡される場合には、-e スイッチ 1 つが 1 行とカウントされます。)
setuid スクリプトでは、制限事項が増えるため、"Insecure dependency" と いったエラーメッセージが表示されることがあります。 perlsec を参照してください。
絶対に use warnings プラグマ を使った方が良いっていうのは、もう 書きましたっけ?
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) を意味していますが、私がそう言った 事をばらしてはいけません。
Perl のモットーは「やり方は 1 通りではない」ということです。 このマニュアルを、後いくつに分割できるかは、宿題とします。
プログラマの 3 つの美徳は、無精、短気、傲慢です。 理由は、ラクダ本を参照してください。