特殊変数一覧

$0 実行中のPerlスクリプトのファイル名。
$1,$2… 正規表現のサブパターンにマッチした文字列。
$' 正規表現でマッチしたパターンより後ろの部分の文字列。
$- フォーマット出力において、現在のページに出力すべき残りの行数。この変数に0を入れると強制的に改ページできる。
$! 数値コンテキストではエラー番号。文字列コンテキストでは、エラーメッセージ。
$" 文字列中でリストを展開する際に使用される、要素間のセパレータ(区切り文字)。デフォルトは空白。
$# print関数が数値を出力するときの書式であるが、通常は使用しない。デフォルトは"%.14g"。
$$ 実行中のPerlプロセス番号。
$% フォーマット出力における現在のページ番号。
$& 正規表現でマッチしたパターンの文字列。
$( このプロセスの実gid
$) このプロセスの実行gid
$* 複数行マッチングの制御を行うが、Perl5では使用が推奨されていない。
$, print関数で使われる、出力フィールドのセパレータ(区切り文字)。デフォルトは空文字列。
$. 最後に入力したファイルの現在の行番号。ファイルハンドルを陽にクローズしたときリセットされる。
$/ 入力レコードのセパレータ(区切り文字)。デフォルトは、改行文字「\n」
$: フォーマット出力において、^フィールド内で改行動作に使用される文字列。デフォルトは、「\n-」つまり空白、改行文字、ハイフンのいずれか。
$; 多次元配列をエミュレートするときの添え字区切り文字であるが、Perl5では多次元配列がサポートされているので使用する必要がない。
$? 子プロセスが返すステータスワードの値。
$@ 最後に実行したeval関数のエラーメッセージ。
$[ 配列の最初の要素の番号。デフォルトは、0。
$] Perlのバージョン番号。
$^ 出力ファイルハンドルに設定されているページ先頭フォーマットの名前。
$^A フォーマットにより出力された行の内容。
$^D デバッグフラグの値。
$^F システムファイル記述子の最大値。デフォルトは、2。
$^I -iスイッチによるファイルの更新時に、バックアップとして作成するファイルにつける拡張子。
$^L フォーマット出力において、改ページする際に出力されるフォームフィード文字。デフォルトは「\f」。
$^O 使用中のオペレーティングシステムの名前。
$^P デバッガの内部で使用されるフラグ。
$^T スクリプトの実行を開始した時刻。
$^W -wスイッチで設定された警告フラグの値。
$^X 実行中のPerlインタプリタのファイル名。
$_ 入出力操作やパターンマッチ操作において対象を省略したときに使用される、デフォルトの変数。
$` 正規表現でマッチしたパターンより前の部分の文字列。
$| 0以外の値が指定されると、print関数やwrite関数で出力する際に、すぐに書き出される。デフォルトは、0。
$~ 出力用のフォーマットの名前。
$+ 正規表現のサブパターンにマッチした最後の文字列。
$< このプロセスの実uid。
$= フォーマット出力において、現在のページに含まれる行数。デフォルトは、60。
$> このプロセスの実行uid。
$\ 出力レコードの末尾のセパレータ(区切り文字)。デフォルトは、空文字列。
$ARGV 現時点で行入力演算子<>から読み込まれているファイル名。
%ENV 環境変数の名前と値が格納されているハッシュ。
%INC requireやdoで読み込まれてたファイル名が格納されているハッシュ。
%SIG シグナルとシグナルハンドらの情報が格納されているハッシュ。
@ARGV コマンドラインからスクリプトに渡される引数の配列。
@INC requireやuseなどがファイルを捜すディレクトリが格納されている配列。