名前 | 形式 | 機能説明 | 使用条件 | 環境 | 著者 | ファイル | 属性 | 関連項目 | 診断 | 注意事項
Perl 関連のマニュアルページは、プログラミングモジュールごとに分割されています。man コマンドで Perl モジュールのマニュアルページを参照するには、MANPATH 環境変数に /usr/perl5/man を追加してください。詳細は man(1) を参照してください。Perl 関連のマニュアルページに対して catman(1M) を実行することはサポートされていません。
perl 関連のマニュアルページは、以下のように複数のマニュアルページに分割されています。
perl Perl の概要 (このマニュアルページ) perldelta 前バージョンからの変更点 perl5004delta Perl バージョン 5.004 に加えられた変更点 perlfaq Perl に関する FAQ perltoc Perl に関するマニュアルの目次 perldata Perl のデータ構造体 perlsyn Perl の構文 perlop Perl の演算子と優先順位 perlre Perl の正規表現 perlrun Perl の実行とオプション perlfunc Perl の組み込み関数 perlopentut Perl open() についてのチュートリアル perlvar Perl の定義済み変数 perlsub Perl サブルーチン perlmod Perl モジュール: 動作のしくみ perlmodlib Perl モジュール: 記述方法と使用方法 perlmodinstall Perl モジュール: CPAN からのインストール方法 perlform Perl の書式 perllocale Perl でサポートされるロケール perlref Perl についてのリファレンス perlreftut Perl リファレンスの概要 perldsc Perl のデータ構造体の概要 perllol Perl のデータ構造体のリスト perltoot Perl についてのチュートリアル perlobj Perl オブジェクト perltie 単純な変数によって無効になる Perl オブジェクト perlbot Perl を使用するコツと使用例 perlipc Perl プロセス間の通信 perlthrtut Perl スレッドについてのチュートリアル perldebug Perl のデバッグ perldiag Perl の診断メッセージ perlsec Perl のセキュリティ perltrap Perl の注意点 perlport Perl の移植 perlstyle Perl のスタイルガイド perlpod Perl に関する過去のマニュアル perlbook Perl 関連書籍 perlembed C または C++ のアプリケーションに Perl を埋め込む方法 perlapio Perl の内部入出力 abstract (抽象) インタフェース perlxs Perl XS アプリケーションプログラミングインタフェース perlxstut Perl XS (チュートリアル) perlguts Perl を拡張するための内部関数 perlcall C から Perl を呼び出すための規約 perlhist Perl の歴史 |
Perl のマニュアルページ全体を初めて読む場合は、上記の順序で読んでいくことをお勧めします。内容を理解しやすい順番になっています。
デフォルトでは、上記のマニュアルページがすべて /usr/local/man/ ディレクトリにインストールされます。
上記のマニュアルページのほかにも、Perl モジュールに関するマニュアルページがあります。perl のデフォルトの構成では、それら Perl モジュールに関するマニュアルページは /usr/local/lib/perl5/man ディレクトリ (または Perl ライブラリがあるディレクトリの man サブディレクトリ) に置かれます。これらのマニュアルページの一部は標準で Perl に提供されています。同じディレクトリに、サードパーティのモジュールに関するマニュアルページも置かれています。
man(1) コマンドで Perl に関するマニュアルページを参照できるようにするには、参照したいマニュアルページが置かれているディレクトリを、適切な起動ファイルまたは MANPATH 環境変数に追加する必要があります。Perl のマニュアルページがインストールされている場所を確認するには、次のように入力してください。
perl -V:man.dir |
/usr/local/man/man1 と /usr/local/man/man3 のように、ディレクトリ名に共通部分がある場合は、その共通部分 (/usr/local/man) のみを man(1) の構成ファイルまたは MANPATH 環境変数に追加してください。ディレクトリ名に共通部分がない場合は、両方のディレクトリ名を構成ファイルまたは環境変数に追加してください。
何らかの理由で上記の方法がうまくいかない場合は、perldoc スクリプトを使用して、Perl モジュールに関する情報を 参照することができます。また、別の man プログラムを使用して、上記の方法を試してみてください。
プログラム中に何か問題があるときにその場所を特定できない場合は、-w スイッチを使用してください。多くの場合に問題箇所を特定するできます。
Perl は、テキストファイルを読み取り、そこから情報を抽出して、その情報をもとにして報告を出力する言語です。また、システム管理作業を行うのにも適した言語です。Perl は、美しいこと (小規模、上品、最小限) よりも実用性 (使いやすい、効率、完全) を目指して作成されています。
Perl は (筆者の意見では) 、C、sed、awk、sh の長所を組み合わせて作成されているので、これらの言語に慣れている方には、Perl を使用することはそれほど難しくないでしょう。(csh、Pascal、BASIC-PLUS の特徴も入っているという意見もあります。) Perl の式の構文はかなりの部分で、C の式の構文に対応しています。多くの UNIX ユーティリティとは異なり、Perl にはデータのサイズに制限がありません。つまり、メモリーが十分にあれば、Perl ではファイル全体を 1 つの文字列中に入れてしまうこともできます。再帰の深さにも制限がありません。パフォーマンスの低下を防ぐために、ハッシュテーブル (連想配列と呼ばれることもある) のサイズが必要に応じて自動的に大きくなります。Perl は、高度なパターンマッチング技術を使用して、大量のデータを高速に読み取ることができます。Perl はテキストファイルを扱うことを用途として最適化されていますが、バイナリデータを扱ったり、dbm ファイルをハッシュテーブルのようにして扱うこともできます。データフローのトレース機構によって、多くの不注意によるセキュリティホールが防止されているので、Perl の setuid スクリプトは C プログラムよりも安全です。
通常なら sed、awk、または sh を使用して記述するような処理をさせたい場合に、sed、awk、sh では不可能またはパフォーマンスをもっと速くしたい、けれども C で記述するほどではないというとき、Perl を使用するのが適しています。また、sed および awk のスクリプトを Perl スクリプトに変換するプログラムもあります。
Perl バージョン 5 では、ほぼ全体が改訂され、次のような特長が追加されています。
従来よりも読みやすい Perl コードを記述できるようになりました。従来の暗号のような変数名は、覚えやすい識別子に置き換えることができます。エラーメッセージには、より多くの情報が示されるようになりました。また、警告メッセージによって初心者によくある誤りが見つかるようになっています。動作に問題があるときには -w を使用してみてください。また、特に動作に問題がないときにも確認のために -w を使用してみてください。
新しい yacc 文法は、従来の半分のサイズになりました。任意の文法の多くが正規の文法になりました。予約語の数が 3 分の 2 ほどになりました。このような変更が行われましたが、従来の Perl スクリプトもほとんどが従来と同じように動作します。
C の auto 変数のように、Perl 変数を字句スコープ内で宣言できるようになりました。このことは、効率的であるばかりでなく、大規模プログラミングにおける非公開性の向上に役立ちます。名前なしのサブルーチンでは、字句変数の結合 (終結) が深くなります。
スカラー変数 (配列の要素を含む) が、他の変数またはサブルーチンへの参照を持つことができるようになりました。名前なしの変数またはサブルーチンを簡単に作成することができます。また、参照数は Perl が管理します。
Perl ライブラリが、さまざまなパッケージ間で簡単に共有できるモジュールとして定義されるようになりました。モジュールが公開しているインタフェースのすべてをインポートするかまたは一部をインポートするかを、パッケージにおいて選択することができます。プラグマ (コンパイラ指令) も、これと同じ機構で定義され使用されます。
パッケージはクラスとして機能します。動的な多重継承と仮想メソッドがサポートされるようになりましたが、新しく増えた構文はほんのわずかです。また、ファイルハンドラをオブジェクトとして扱うことができるようになりました。
C または C++ のアプリケーション中に Perl を簡単に組み込むことができるようになりました。文書化されているインタフェースを利用することによって、Perl が呼び出しをしたり、ユーザーが作成したルーチンから Perl を呼び出したりできます。C または C++ のルーチンを 簡単に Perl に組み込むための XS プリプロセッサが提供されています。また、モジュールの動的ロードがサポートされており、Perl 自体を動的ライブラリにすることもできます。
主な新規モジュールとして POSIX モジュールがあります。POSIX モジュールによって、適宜オブジェクトクラスを介して、すべての利用可能な POSIX ルーチンおよび POSIX 定義にアクセスすることができます。
新しく提供された BEGIN ブロックおよび END ブロックは、パッケージのコンパイル中およびプログラムの終了後に、制御を獲得するために使用できます。後退した点として、-p または -n スイッチの使用時には、Perl の BEGIN および END が AWK の BEGIN および END と同じように動作します。
Perl プログラムが、同じスクリプト中にある DBM、 NDBM、 SDBM、 GDBM、Berkeley DB ファイルへ同時にアクセスできるようになりました。従来の dbmopen インタフェースは、アクセスメソッドを定義しているオブジェクトクラスに、任意の変数を結合することができるように一般化されました。
実際に、AUTOLOAD 機構で、未定義のサブルーチン呼び出しに対して任意の意味内容を定義することができます。AUTOLOAD 機構は、自動ロードのためだけではありません。
修飾子を指定することができるようになりました。後方参照をせずにグループ化することが可能になりました。また、正規表現の中に空白やコメントを入れることができるようになり、読みやすさが向上します。また、従来のすべての正規表現と上位互換である拡張性の機構が追加されました。
perlmodlib マニュアルページに記述されている Comprehensive Perl Archive Network (CPAN) には、再利用可能なコードが含まれているプラグアンドプレイモジュールが提供されています。http://www.perl.com/CPAN を参照してください。
まだ完全な製造段階には入っていませんが、Perl から C へのコンパイラがあります。移植可能なバイトコード、最適化された C コード、または通常の C コードを生成することができます。
Perl は、ほとんどのオペレーティングシステム環境のプラットフォーム上で利用できます。以下に、1999 年 2 月時点の Perl 5.005_03 について説明します。
次に示すプラットフォーム上において、 http://www.perl.com/CPAN/src/index.html で入手できる標準ソースコードディストリビューションから Perl を構築することができます。
AIX | Linux | SCO ODT/OSR |
A/UX | MachTen | Solaris |
BeOS | MPE/iX | SunOS |
BSD/OS | NetBSD | SVR4 |
DG/UX | NextSTEP | Tru64 UNIX (*1) |
DomainOS | OpenBSD | Ultrix |
DOS DJGPP (*2) | OpenSTEP | UNICOS |
DYNIX/ptx | OS/2 | VMS |
FreeBSD | OS390 (*3) | VOS |
HP-UX | PowerMAX | Windows 3.1 (*2) |
Hurd | QNX | Windows 95 (*2, *4) |
IRIX | Windows 98 (*2, *4) | |
Windows NT (*2, *4) |
旧 Digital UNIX。それより前には DEC OSF/1 と呼ばれていた。
DOS モードでは DOS または OS/2 ポートが使用可能
旧 MVS
コンパイラ; Borland, Cygwin32, Mingw32 EGCS/GCC, VC++
以下のプラットフォーム上においても、ソースコードから Perl を構築できます。ただし、Perl 5.005_03 については、ハードウェアやソフトウェアが比較的少ないなどの理由から、完全には検証されていません。
3bl | FPS | Plan 9 |
AmigaOS | GENIX | PowerUX |
ConvexOS | Greenhills | RISC/os |
CX/UX | ISC | Stellar |
DC/OSx | MachTen 68k | SVR2 |
DDE SMES | MiNT | TIl500 |
DOS EMX | MPC | TitanOS |
DYNIX | NEWS-OS | UNICOS/mk |
EP/IX | Opus | Unisys Dynix |
Esix | Unixware |
次に示すプラットフォームは、Perl 5.006 の標準ソースコードディストリビューションについてサポートされる予定です。Perl 5.005_03 ではサポートされていません。
BS2000 | Netware |
---|---|
Rhapsody | VM/ESA |
次に示すプラットフォームには、独自のソースコードディスリビューションおよびバイナリがあり、 http://www.perl.com/CPAN/ports/index.html から入手することができます。
Perl のバージョン | |
---|---|
AS/400 | 5.003 |
MacOS | 5.004 |
Netware | 5.003_07 |
Tandem Guardian | 5.004 |
次のプラットフォームについては、バイナリのみが提供されており、 http://www.perl.com/CPAN/ports/index.html から入手することができます。
Perl のバージョン | |
---|---|
Acorn RISCOS | 5.005_02 |
AOS | 5.002 |
LynxOS | 5.004_02 |
perlrun のマニュアルページを参照してください。
Larry Wall <larry@wall.org>、ほか
Perl を利用してアプリケーションを開発する人々にとって参考になると思われる Perl 実用例がある場合や、Larry を始めとする Perl 開発者に謝意を表わしたい場合には、<perl-thanks@perl.org> 宛てに電子メールを送ってください。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWpl5u |
SUNWpl5p | |
SUNWpl5m |
-w スイッチを使用すると、診断メッセージが表示されます。
Perl の診断メッセージについての説明は、perldiag のマニュアルページを参照してください。use diagnostics プラグマを使用すると、警告メッセージおよびエラーメッセージがより詳細に出力されます。
コンパイル時のエラーメッセージには、エラー箇所の行番号、確認が必要な次のトークンまたはトークンタイプが示されます。複数の -e スイッチによって Perl に渡されるスクリプトでは、各 -e スイッチが 1 行として数えられます。
setuid スクリプトには、"Insecure dependency" などのエラーメッセージとして示されるような制限事項があります。詳細は perlsec のマニュアルページを参照してください。
次に、-w について説明します。
-w スイッチを使用することは、必須事項ではありません。
Perl は、型キャストを行う atof()や、浮動小数点を出力する sprintf() など、さまざまな処理のマシン上での定義に影響されます。
標準入出力が、特定のストリーム上の読み取りと書き込みの間にシークまたは EOF を必要とする場合、Perl がそれを実行します。ただしこれは sysread() および syswrite() には適用されません。
組み込みデータ型にサイズ制限 (メモリーサイズを除く) はありませんが、若干の制限事項があります。変数名は 251 文字未満にする必要があります。診断メッセージに示される行番号は内部で short 型整数として格納されるので、表示できる行番号は 65535 行目までです。これ以上の行番号は通常 wraparound による影響を受けます。
発見したバグについて、電子メールで <perlbug@perl.com> 宛に報告することができます。この時、使用している環境の構成情報 (Perl のソースツリーにある myconfig コマンドまたは perl -V の実行結果) も必ずお知らせください。Perl をコンパイルできている場合は、バグを電子メールで送信する際に utils/ サブディレクトリにある perlbug スクリプトを使用すると便利です。
名前 | 形式 | 機能説明 | 使用条件 | 環境 | 著者 | ファイル | 属性 | 関連項目 | 診断 | 注意事項