オプション | 説明 |
---|---|
-0xxx | 入力レコードの区切り文字($/)を8進数で指定します。 |
-a | オートスプリットモード。-n または -p と組み合わせた場合、入力をスペースで自動的に区切って、予約変数 @F に代入します。 |
-c | スクリプトの構文チェックのみを行い、実行せずに終わります。 |
-d | perl をデバッグモードで起動します。 |
-Dnumber | デバッグフラグ。このフラグを使用するには、perl がデバッグモードでコンパイルされている必要があります。 |
-e script | script を perl のスクリプトとして実行します。例えば、「perl -e "print 5 * 3"」 は 5 * 3 の結果 15 を表示します。 |
-iext | perl -p -i.bak -e "s/\r\n/\n/" file1.txt とすると、file1.txt ファイルに対して s/\r\n/\n/ の操作(Windows 形式の改行から UNIX 形式の改行への変換)を行い、file1.txt を更新します。また、file1.txt のバックアップを file1.txt.bak として残します。 |
-Idir | C言語プリプロセッサがヘッダファイルを探すディレクトリ(省略時は /usr/include と /usr/lib/perl)を指定します。(→ -P) |
-loct | 8進数 oct で指定した値を特殊変数 $\ に設定します。このコードは、すべての print 文の末尾に付加されます。 |
-n | スクリプトを while (<>) { ... } で囲んで実行します。 |
-p | スクリプトを while (<>) { ... } continue { print; } で囲んで実行します。 |
-P | スクリプトを実行する前にC言語のプリプロセッサ処理(#define #ifdef #else #endifなど)を行います。 |
-s | コマンドラインで、オプションに対応する変数を 1 に設定します。例えば、perl -s script -abc file.txt は、$abc が 1 となり、@ARGV は file.txt のみを含んだ状態で実行されます。 |
-S | 環境変数 PATH からスクリプトファイルを探します。 |
-u | スクリプトをコンパイルした後、コアダンプさせます。このコアファイルを undump コマンドで実行することにより、ファイルサイズは大きくなりますが、perl の初期化処理を高速化することができます。 |
-U | ディレクトリ削除など危険とされている機能を有効化します。 |
-v | perl のバージョン情報を表示します。 |
-V | perl の詳しいバージョン情報を表示します。 |
-w | 未使用変数、未初期化変数の参照などの警告を表示します。 |
-xdir | #! で始まって perl という文字を含む行までをコメントとして読み飛ばします。ディレクトリ dir を指定した場合は、そのディレクトリに移動してから処理を行います。 |
型記号 | 型名 | 例 | 説明 |
---|---|---|---|
$名前 | SCALAR | $name | スカラー。ひとつの数値や文字列。 |
@名前 | ARRAY | @names | 配列。リスト。数値をキーとしたスカラー値の集合。 |
%名前 | HASH | %data | 連想配列。ハッシュ。文字列をキーとしたスカラー値の集合。 |
&名前 | CODE | &func | サブルーチン。Perl 5 では & を省略可能。 |
名前 | IN | ファイルハンドル。ディレクトリハンドル。 | |
*名前 | GLOB | *data | 型グロブ。$名前、@名前、%名前、&名前、名前などの総称のようなもの。 |
\$名前 | REF | \$name | 参照。他にも \@、\%、\& などもあり。 |
ハンドル | 説明 |
---|---|
STDIN | 標準入力。通常はキーボード。CGIの場合はブラウザ。 |
STDOUT | 標準出力。通常はコンソール。CGIの場合はブラウザ。 |
STDERR | 標準エラー出力。通常はコンソール。CGIの場合は無視される。 |
DATA | スクリプトの末尾にある __END__ 以降のデータを読みだす。 |
ARGV | 引数で指定したファイルからの入力。<ARGV> は <> と同じ。 |
特殊変数 | 説明 |
---|---|
$& | パターンマッチにマッチした部分文字列。 |
$` | パターンマッチにマッチした部分の前側の文字列。 |
$' | パターンマッチにマッチした部分の後側の文字列。 |
$+ | パターンマッチの最後の()に対応する文字列。 |
$* | 1を代入すると /.../ が /.../m として実行される。 |
$1 $2 $3... | パターンマッチの際の 1、2、3...番目の ( ) に対応する文字列。 |
特殊変数 | 説明 |
---|---|
$| | 0以外が代入されると出力をバッファリングしなくなる。 |
$. | ファイルから読み込み時の現在の行数。 |
$/ | 入力時のレコード区切り文字。通常は改行。 |
$, | 出力時の項目区切り文字。print @xx; の時に有効。 |
$\ | 出力時の行末文字。print "$xx"; の後ろに付加される。 |
$" | 出力時の項目区切り文字。print "@xx"; の時に有効。 |
特殊変数 | 説明 |
---|---|
$# | print で数値を表示する際のフォーマット。 |
$% | write 使用時の現在のページ番号。 |
$= | write 使用時の現在のライン数。 |
$- | write 使用時の残り行数。 |
$~ | write 使用時のフォーマット名(デフォルトはハンドル名と同じ)。 |
$^ | write 使用時のヘッダフォーマット名。 |
$^L | write 使用時のフッタ。省略時は "\f"。 |
$: | write の ^ で改行が可能な文字。省略時は " \n-"。 |
$^A | format のアキュムレータの値。 |
特殊変数 | 説明 |
---|---|
$? | 最後に実行されたコマンドのステータス。 |
$! | 最後に実行されたシステムコールのエラー情報。 |
$@ | 最後に実行されたevalのエラーメッセージ。 |
$^D | デバッグフラグの値。 |
$^P | デバッガが使用する内部フラグ。 |
$^W | 警告スイッチの現在値。 |
特殊変数 | 説明 |
---|---|
$$ | プロセスID。(UNIX) |
$< | このプロセスの実ユーザーID。(UNIX) |
$> | このプロセスの実効ユーザーID。(UNIX) |
$( | このプロセスの実グループID。(UNIX) |
$) | このプロセスの実効グループID。(UNIX) |
特殊変数 | 説明 |
---|---|
$_ | 省略時の変数。 |
$[ | 配列の最初の添え字。通常は0。 |
$; | 高次元連想配列の添え字の区切り文字。 |
$0 | スクリプトのコマンド名。 |
$^T | スクリプトの実行時刻。 |
$^X | perl のパス情報。 |
$] | perl のバージョン情報。 |
$^O | perl の OS 情報。 |
$^F | システムファイルディスクリプタの最大値。 |
$^H | プラグマモジュールの内部的な値。 |
$^I | -i オプションで指定した拡張子の名前。 |
特殊変数 | 説明 |
---|---|
@ARGV | コマンドライン引数。 |
$ARGV | <ARGV> から読み込み中のファイル名。 |
@INC | perlライブラリ検索ディレクトリ。 |
@F | 入力データの配列。(-a オプション指定時) |
%INC | 読み込まれたライブラリファイルの配列。 |
%ENV | 環境変数一覧。 |
%SIG | シグナル。 |
特殊トークン | 説明 |
---|---|
__FILE__ | スクリプトのファイル名。 |
__LINE__ | スクリプト上の現在の行番号。 |
__PACKAGE__ | パッケージ名。 |
__END__ | スクリプトの終わりを示す。__END__ 以降のデータは特殊ファイルハンドル DATA で読み出せる。 |
__DATA__ | __END__ と同様。ファイルハンドル パッケージ名::DATA で読み出せる。 |
正規表現 | 意味 |
---|---|
A | 文字 A |
^A | 先頭が A |
A$ | 末尾が A |
[ABC] | A か B か C |
[A-Z] | A~Z のいずれか |
A* | 0 文字以上の A |
A+ | 1 文字以上の A |
A? | 0 文字か 1 文字の A |
A{2} | 2 文字の A |
A{2,} | 2 文字以上の A |
A{2,5} | 2 文字以上 5 文字以下の A |
. | 改行以外の任意の 1 文字 |
(ABC|DEC) | ABC または DEF |
\t | タブ文字(TAB) |
\n | 改行文字(LF) |
\r | 復帰文字(CR) |
\f | フォームフィード(FF) |
\a | アラーム(BEL) |
\e | エスケープ(ESC) |
\c[ | コントロール文字 |
\L | \E までを小文字にする |
\U | \E までを大文字にする |
\Q | \E までを正規表現ではなくそのままの文字として解釈する |
\E | \L、\U、\Q の効果を終了させる |
\w | アンダーバー(_)を含む英数文字からなる単語。[_0-9a-zA-Z]+ と同じ。 |
\W | 単語以外の文字。[^_0-9a-zA-Z] と同じ。 |
\s | スペースや改行。[ \t\r\n\f] と同じ。 |
\S | タブ、スペース以外の文字。[^ \t\r\n\f] と同じ。 |
\d | 0~9 の数値。[0-9] と同じ。 |
\D | 0~9 以外の文字。[^0-9] と同じ。 |
ワイルド カード | 意味 |
---|---|
* | 0 文字以上の任意文字。a* は a, abc, a123 などにマッチする。 |
? | 1 文字の任意文字。a??? は axyz a123 accc などにマッチする。 |
オプション | 説明 |
---|---|
/.../g s/.../.../g | 連続してマッチングを行う。 |
/.../i s/.../.../i | 大文字と小文字を区別しない。 |
/.../m s/.../.../m | 文字列を複数の行として扱う。 |
/.../s s/.../.../s | 文字列を1行として扱う。 |
/.../o s/.../.../o | 正規表現を最初の1回だけコンパイルする。 |
/.../x s/.../.../x | 拡張形式の正規表現を用いる |
s/.../.../e | 後者をperl文として実行する。 |
特殊文字 | 表示例 | 説明 | |
---|---|---|---|
文 字 列 | printf("|%s|", "ABC") | |ABC| | 文字列(string) |
printf("|%5s|", "ABC") | | ABC| | 右詰め文字列 | |
printf("|%-5s|", "ABC") | |ABC | | 左詰め文字列 | |
printf("|%3s|", "ABCDEF") | |ABCDEF| | 文字列の方が長い場合 | |
printf("|%.3s|", "ABCDEF") | |ABC| | 強制的に3文字のみ表示 | |
printf("%c", 0x41) | A | 文字コード(character) | |
10 進 数 | printf("|%d|", 26) | |26| | 10進整数(decimal) |
printf("|%5d|", 26) | | 26| | 右詰め5桁整数 | |
printf("|%-5d|", 26) | |26 | | 左詰め5桁整数 | |
printf("|%+d|", 26) | |+26| | プラス記号付き整数 | |
printf("|%05d|", 26) | |00026| | 0埋め5桁整数 | |
printf("%d", 0xffffffff) | -1 | 符号付整数 | |
printf("%u", 0xffffffff) | 4294967295 | 符号無し整数(unsigned) | |
16 進 数 | printf("%x", 255) | ff | 16進数(hexadecimal) |
printf("%X", 255) | FF | 大文字16進数 | |
printf("%#x", 255) | 0xff | 0x付き16進数 | |
printf("%04x", 255) | 00ff | 0埋め4桁16進数 | |
n 進 数 | printf("%o", 511) | 777 | 8進数(octal) |
printf("%#o", 511) | 0777 | 0付き8進数 | |
printf("%b", 255) | 11111111 | 2進数(binary) | |
小 数 | printf("|%f|", 3.45) | |3.45| | 小数(float) |
printf("|%5.1f|", 3.45) | | 3.5| | 5文字分、小数第1位まで表示 | |
printf("%e", 3.45) | 3.450000e+000 | 科学計算的数値表現 | |
printf("%E", 3.45) | 3.450000E+000 | Eが大文字 | |
printf("%g", 3.45) | 桁数に応じて %f と %e を自動選択 | ||
% | printf("%%") | % | パーセント(%) |
特殊文字 | 意味 |
---|---|
\t | タブ文字(\x09) |
\n | 改行(\x0a) |
\r | リターン(\x0d) |
\f | フォームフィード(\x0c) |
\b | バックスペース(\x08) |
\a | アラーム(\x07) |
\e | エスケープ文字(\x1b) |
\033 | 文字コード(8進数) |
\x1b | 文字コード(16進数) |
\c[ | コントロール文字 |
\l | 次の1文字を小文字にする |
\u | 次の1文字を大文字にする |
\L | \E までの文字列を小文字にする |
\U | \E までの文字列を大文字にする |
\Q | \E までのメタ文字を無効にする |
\E | \L や \U や \Q を終了させる |
\その他 | その他の文字。例えば \" は " を表す |
通常の表記 | 汎用表記 | 説明 |
---|---|---|
'...' | q/.../ | シングルクォートによる文字列。 |
"..." | qq/.../ | ダブルクォートによる文字列。 |
`...` | qx/.../ | バッククォートによるコマンド実行。 |
("A", "B", "C") | qw(A B C) | 配列。" や , が無くなる点に注意。 |
/.../ | m/.../ | パターンマッチ。 |
s/.../.../ | s/.../.../ | 置換。 |
y/.../.../ | tr/.../.../ | 置換。 |
シグナルの実装状況は、OS によって異なる場合があります。下記では、Linux におけるシグナルの主な一覧を示します。
シグナル | 数値 | 説明 |
---|---|---|
SIGHUP | 1 | ハングアップ(hungup)。 |
SIGINT | 2 | 割りこみ(interrupt)。 |
SIGQUIT | 3 | 中止(quit)。 |
SIGKILL | 9 | 無視できない強制終了命令(kill)。 |
SIGPIPE | 13 | パイプの切断通知(kill)。 |
SIGALRM | 14 | アラーム通知(alarm)。 |
SIGTERM | 15 | 終了(terminate)。 |
SIGUSR1 | 16 | ユーザ定義1(user 1)。 |
SIGUSR2 | 17 | ユーザ定義2(user 2)。 |
SIGCHLD | 18 | 子プロセス終了(child)。 |
SIGSTOP | 23 | 一時停止(stop)。 |
SIGCONT | 25 | 再開(continue)。 |
上位4ビット | |||||||||
---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
下 位 4 ビ ッ ト | 0 | NUL | DLE | SP | 0 | @ | P | ` | p |
1 | SOH | DC1 | ! | 1 | A | Q | a | q | |
2 | STX | DC2 | " | 2 | B | R | b | r | |
3 | ETX | DC3 | # | 3 | C | S | c | s | |
4 | EOT | DC4 | $ | 4 | D | T | d | t | |
5 | ENQ | NAK | % | 5 | E | U | e | u | |
6 | ACK | SYN | & | 6 | F | V | f | v | |
7 | BEL(\a) | ETB | ' | 7 | G | W | g | w | |
8 | BS(\b) | CAN | ( | 8 | H | X | h | x | |
9 | TAB(\t) | EM | ) | 9 | I | Y | i | y | |
A | LF(\r) | SUB | * | : | J | Z | j | z | |
B | VT | ESC(\e) | + | ; | K | [ | k | { | |
C | NP(\f) | FS | , | < | L | \ | l | | | |
D | CR(\n) | GS | - | = | M | ] | m | } | |
E | SO | RS | . | > | N | ^ | n | ~ | |
F | SI | US | / | ? | O | _ | o | DEL |
環境変数 | 説明 |
---|---|
AUTH_TYPE | 認証タイプ。 例:Basic |
CONTENT_LENGTH | ブラウザから送信されたコンテンツの長さ。 例:968 |
CONTENT_TYPE | ブラウザから送信されたコンテンツのタイプ。 例:application/x-www-form-urlencode |
DOCUMENT_ROOT | ドキュメントのルートフォルダ。仮想パス / に対応するサーバー上の実パス名。 例:/home/www |
GATEWAY_INTERFACE | CGI のバージョン。 例:CGI/1.1 |
HTTP_ACCEPT | ブラウザが受信可能な MIME タイプ。 例:*/* |
HTTP_ACCEPT_ENCODING | ブラウザが受信可能なエンコードタイプ。 例:gzip, deflate |
HTTP_ACCEPT_LANGUAGE | ブラウザが受信可能な言語タイプ。 例:ja |
HTTP_CACHE_CONTROL | キャッシュ制御に関する情報。 例:max-age=259200 |
HTTP_CONNECTION | HTTP の接続に関する情報。 例:keep-alive |
HTTP_FORWARDED | この要求をフォワードしたプロキシサーバーの情報。 例:by proxy.xxx.zzz |
HTTP_HOST | サーバーのホスト名。 例:www.xxx.zzz |
HTTP_PRAGMA | 実装依存の値。 例:no-cache |
HTTP_REFERER | このページにリンクしていたページの URL。 例:http://www.xxx.zzz/index.htm |
HTTP_USER_AGENT | ブラウザに関する情報 例:Mozilla/4.01 [ja] (Win95; I) |
HTTP_X_FORWARDED_FOR | この要求をフォワードしたプロキシサーバーのIPアドレス。 例:192.168.0.2 |
PATH | コマンドを実行する際のサーチパスの一覧。 例:/bin:/sbin:/usr/bin:/usr/sbin |
PATH_INFO | CGI の URL の末尾に付加されたパス情報。例えば、test.cgi/download.zip という形式で呼ばれた場合は、/download.cgi となる。 例:/download.zip |
環境変数 | 説明 |
---|---|
PATH_TRANSLATED | PATH_INFO に指定されたファイルのサーバー上の実パス名。 例:/home/www/download.zip |
QUERY_STRING | GETメソッドで渡されたフォームパラメータ。URL の ? 以降に付加されたデータ。 例:NAME=foo&PASSWD=hi.mi.tu |
REMOTE_ADDR | ブラウザ側のアドレス。 例:192.168.0.65 |
REMOTE_PORT | ブラウザ側のポート番号。 例:1094 |
REMOTE_IDENT | ブラウザ側のユーザID。 例:5012 |
REMOTE_USER | ブラウザ側のユーザ名。BASIC認証などが行われている際に有効。 例:tanaka |
REQUEST_METHOD | 取得モード。GET や POST など。 例:GET |
REQUEST_URI | 要求されたURL(URI)。 例:/test.cgi |
SCRIPT_FILENAME | スクリプトの実パス上のファイル名。 例:/home/www/test.cgi |
SCRIPT_NAME | スクリプト名。 例:/test.cgi |
SERVER_ADDR | サーバーのアドレス。 例:192.168.0.1 |
SERVER_ADMIN | サーバー管理者情報。 例:webmaster@www.xxx.zzz |
SERVER_NAME | サーバー名。 例:www.xxx.zzz |
SERVER_PORT | サーバー側のポート番号。 例:80 |
SERVER_PROTOCOL | プロトコルバージョン。 例:HTTP/1.0 |
SERVER_SIGNATURE | サーバーのシグネチャ。 例:Apache/1.3.9 Server at www.xxx.zzz Port 80 |
SERVER_SOFTWARE | サーバーのソフトウェア。 例:Apache/1.3.9 (Unix) |