1. ホーム
  2. スクリプト・コラム
  3. パール
  4. 基本チュートリアル

Perl 組み込み特殊変数まとめ

2022-02-02 08:23:30

[ ファイルハンドル ]。

$| 0でない場合、現在選択されているファイルに対して書き込みまたは印刷操作が行われた後、バッファを強制的にクリアします。
現在選択されているファイルハンドルの現在のページ番号
現在選択されているファイルハンドルの現在のページ長
$- 現在選択されているファイルハンドルの残りページ数
$~ 現在選択されているファイルハンドルのレポートフォーマット名
$^ 現在選択されているファイルハンドルの現在のヘッダーフォーマット名

[ グローバル変数 ]。

$_ デフォルトの入力とパターン検索空間
最後のeval, do, require関数によって生成されたエラーメッセージ
$/ 入力レコードの区切り文字、デフォルトは改行 (awk の RS に似ています)
print 関数の入力レコード区切り文字。ただし、$see=" \n" が設定されている場合は改行されません。
print 関数で出力される数値出力のフォーマット (awk の OMFT に類似)
$? 前の閉じたパイプライン、バッククォート内のコマンド、システム関数の戻りステータス
$! コンテキストに応じて、エラー番号またはエラー文字列を返します。  
このスクリプトを実行しているPerlプログラムの$$プロセスID
1は文字列の複数行マッチングを意味し、0は1行のみのマッチングを意味します。
print関数の出力フィールドセパレータである$。一般に、カンマ区切りの文字列では、$,=" "が設定されない限り、区切り文字は出力されません。
$" は $ と似ていますが、配列を表示するために二重引用符で囲んで提供され、デフォルト値はスペースになります
0 Perlスクリプト名
$[ 配列または部分文字列の最初の文字へのインデックス,デフォルトは0
$] Perl - v コマンドでバージョン情報を取得する場合、文字列の最初の部分を表示します。
多次元配列の添え字の区切り文字。デフォルトは \034 (awk の SUBSEP に似ている)。
$. 前のファイルハンドルの現在の入力行番号を読み取ります; 次のファイルハンドルのために行番号をリセットする前に、前のファイルハンドルを閉じる必要があります。
プロセスの実際の uid は $< です。
$> プロセスの有効なuid
$( プロセスの実際の gid
$) プロセスの有効なgid
$: 後続の文字列を分割し、何らかの形式で連続した行を埋める文字セット(^から始まる)。デフォルトは、空白、改行、コロンで区切られた "hello "である。
フォームラインおよび書き込み操作のためのアキュムレータ $^A
Perl を -c オプション付きコンパイル専用モードで実行した場合に TRUE を返します。
$^D -D スイッチを使用して、Perl のデバッグ・フラグをオンにします。
オペレーティングシステムに関連するエラーメッセージ
$^F サブルーチンに渡すファイル記述子の最大数(通常は2個)。
現在の$^H構文チェックの状態
$^I -iスイッチを使用した場合のedit-in-place extensionの現在値
$^L フィード文字、フォーマットで使用される
$^M 非常用メモリプール
$^O オペレーティングシステム名
Perl の内部デバッグマーカー $^P
Perl インタープリターの状態
T スクリプトの実行時間。A、-C、および -M テスト演算子に使用され、time が返す任意の数値に設定でき、現在の時刻に関連するファイル・テストを実行します。

Perlのバージョン
$^W 現在の警告スイッチの設定値
Perl 呼び出しのフルパス名 $^X
アンダースコア(ファイルを宣言する際にテストするための特別な識別子)。
ARGV 行パラメータループ用特殊ファイルハンドルの配列
ARGV <ARGV> から読み込んだときの現在のファイル名を含む変数。
ARGV コマンドライン引数を含む配列
DATA _END_フラグの後の内容を参照する特殊なファイルハンドル変数
a スイッチが使用された場合、@F は入力行の配列を自動的に分割します。
INC インポートするファイル名のパスの配列で、require および do 関数が検索するものです。
INC インポートするファイル名のパスを require と do 関数が検索するための連想配列です。
%ENV 現在の環境変数を表す連想配列です。
EXPORTエクスポートのデフォルトシンボル
EXPORT_OK ユーザーのリクエストに基づきエクスポートするためのシンボル
%EXPORT_TAGS はシンボルコレクションの命名を標準化するために Exporter.pm で使用されています。
SIG は、信号処理ルーチンの関連する配列を設定するために使用されます。
STDERR 標準エラー内容用の特別なファイルハンドル
STDIN 標準入力用特殊ファイルハンドル
STDOUT 標準出力内容用特殊ファイルハンドル
$-[0] と $+[0] は、マッチする文字列の中で現在マッチしている正規表現の開始位置と終了位置を表します。

[ ブロック内ローカル変数 ]。

$1... $9 に対応する括弧の集合を含むサブメモリパターンです。
$& パターンにマッチした最後の文字列(sedエディタと同等です)
$` パターンにマッチした最後の項目の先頭の文字列
$' パターンにマッチした最後の項目の後の文字列
$+ 検索パターンにマッチする最後のパターン
サブルーチンに渡されるパラメータのリスト

P.S. もうひとつのまとめ

I. 正規表現のための特殊変数
1. $n :最後のパターンマッチのn番目の部分文字列が含まれています。
2. $& :前回成功したパターンマッチの文字列
3. $` :前回成功した部分文字列のマッチングの前
4. $' :直前の成功した部分文字列の後の内容
5. $+ :前の文字列が括弧のパターンを使ってマッチングされた。

II. ファイルハンドルの特殊変数
1. $| :ゼロに設定すると、関数 write または print を呼び出すたびに、関数 fflush が自動的に呼び出され、内容がファイルに書き戻されます。
2. $% :現在の出力ページ番号
3. $= :1ページあたりの現在の長さ
4. $- :現在のページの残り行数
5. 5. $~ :現在のレポート出力フォーマットの名前です。デフォルト値は、ファイル・ハンドル名です。
6、$^ :現在のレポート出力ヘッダー フォーマットの名前です。デフォルト値は、ファイル ハンドルの名前に "_TOP"という接尾語を付けたものです。

3. グローバル特殊変数。
1. $_ と $ARG :デフォルトの入力とパターン・マッチの内容です。入力を受け取る変数や、パターンマッチを行う文字列を指定しない場合。
2. $. と $NR :前回読み込んだファイルハンドルの現在行番号
3. $/ and $RS :入力レコードの区切り文字、デフォルトは改行文字です。変数undefを使用すると、ファイルの終わりまで読みます。
4. および$OFS :出力フィールドのセパレータです。
5. and $ORS :出力レコードの区切り文字
6、$::改行文字、デフォルトは" \n-" 3文字
7. $! :この変数の数値は errno の値であり、文字列値は対応するシステムエラー文字列である
8. 8. $@ :コマンドevalのエラーメッセージ。空の場合は、最後のevalコマンドの実行が成功したことを意味する
9. $$ :現在実行中のPerlスクリプトのプロセス番号
10, $< :現在のプロセスの実際のユーザー番号
11. 11. $> :現在のプロセスの実効ユーザー番号
12. $( :現在のプロセスの実際のグループ・ユーザー番号)
13. $) :現在のプロセスの有効なグループ・ユーザー番号
14. $[ :配列の最初の要素の添え字、デフォルトは0
15. $] :Perlのバージョン番号
16. $ARGV :"< >" でファイルを読み込むとき、現在のファイル名を保存します。

IV. グローバルな特殊配列変数
1. ARGV :コマンドライン引数の保存
2. INC :Perlプログラムを見つけるためのディレクトリを保存します。
3. 3. @_ :サブルーチン内で、この配列変数にサブルーチンに渡された引数を格納します。
4. INC :ハッシュ・テーブル %INC は、do または require 文に含まれるすべてのファイルを含みます。キーワードはファイル名で、値はそのファイルへのパスです。
5. 5. %ENV :現在の環境変数が格納されています。
V. グローバル特殊ファイルハンドル
1. ARGV :配列変数 @ARGV にあるすべてのファイル名の特殊ファイルハンドルを反復処理する。
2. STDERR :標準エラー出力ハンドル
3、STDIN :標準入力ハンドル
4. STDOUT :標準出力ハンドル

PERL組み込み変数。
$- 現在のページに印刷できる行数、Perl の書式システムの一部
$!   コンテキストに応じて、エラー番号またはエラー文字列を返します。
リストセパレータ $"
$# 数字を印刷する際のデフォルトの数字出力形式
$$ PerlインタプリタのプロセスID
$% 現在の出力チャンネルのページ番号
前の書式と一致する$&文字列
$( 現在のプロセスのグループID
$) 現在のプロセスで有効なグループID
$* 複数行の書式を処理するために 1 を設定します。現在はほとんど /s と /m 修飾子で置き換えられています。
$, 現在の出力フィールドのセパレータ
$.   最後に読み込んだファイルの現在の入力行番号
$/ 現在の入力レコードの区切り文字、デフォルトは改行です。
$: 連続したフィールドを埋めるために、文字列を区切る文字セット。
多次元配列をエミュレートする際に使用されるセパレータ。
$?   最後の外部コマンドのステータスを返す
Perl インタープリタが eval 文から返したエラーメッセージ
$[ 配列の最初の要素のインデックス番号
$ 現在の出力レコードのセパレータ
$] Perlインタプリタのサブバージョン番号
$^ 現在のチャンネルの先頭にあるページ出力形式の名前
$^A 印刷前にフォーマットされたデータを保存するために使用する変数
$^D デバッグフラグの値
UNIX以外の環境での$^Eオペレーティングシステム拡張エラーメッセージ
$^F ファイルバンドル宣言子の最大値
コンパイラで有効化された構文チェック状況
組み込みのコントロールエディターの値
$^L 出力チャンネルに送られた紙送り
$^M 代替メモリプールのサイズ
$^O オペレーティングシステム名
$^P 現在のデバッグ値を指定する内部変数
$^R 正規表現ブロックの最後の評価結果
$^S 現在のインタープリタの状態
フットプリントの実行を開始した、新世紀に入ってからの時間(秒単位
$^W 警告スイッチの現在値
Perlバイナリ実行コード名
$_ デフォルトの入出力およびフォーマットマッチング用スペース
$| 現在選択されている出力ファイルハンドルのキャッシュを制御します。
$~ 現在のレポートフォーマットの名前
前のフォーマットマッチメッセージの前の文字列 $`
前のフォーマットマッチメッセージの後の$' 文字列
$+ 直前の正規表現と検索形式の一致した最後の括弧
$< 現在インタプリタを実行しているユーザの実ID
直前の正規表現に対応する括弧付きの結果が含まれます。
現在のページで印刷可能な行数
現在のプロセスで有効なユーザーID
0 実行されるスクリプトを含むファイル名
ARGV デフォルトのファイルハンドルから読み込むときの現在のファイル名
%ENV 環境変数のリスト
INC do または require によってインクルードされるファイルのリストです。
SIG シグナルとその処理方法のリスト
サブルーチンに渡されるパラメータ一覧
ARGVでスクリプトに渡されるコマンドライン引数のリスト
モジュールをインポートする際に検索するディレクトリのリスト @INC
$-[0] と $+[0] は、マッチする文字列の中で現在マッチしている正規表現の開始位置と終了位置を表します。