Latest web development tutorials

Perlの特殊変数

$ _:Perl言語は、いくつかの特別な変数、例えば通常$、@、または接頭辞として%を、定義されています。

多くの特殊変数は、非常に長い英語名を持っている、オペレーティングシステム変数$!$ OS_ERRORとして書くことができます。

あなたがプログラムに特殊変数の英語名を使用する場合は使用英語を追加する頭する必要があります;. 記述この英語の特殊変数。

最も一般的に使用される特殊変数$ _は、変数は、デフォルトの入力とパターンマッチングコンテンツが含まれています。 例としては、次のとおりです:

#!/usr/bin/perl

foreach ('Google','w3big','Taobao') {
	print $_;
	print "\n";
}

上記のプログラムは、出力は次のようになります。

Google
w3big
Taobao

次の例では、我々は出力に$ _を使用しないでください。

#!/usr/bin/perl

foreach ('Google','w3big','Taobao') {
	print;
	print "\n";
}

上記のプログラムは、出力は次のようになります。

Google
w3big
Taobao

たとえば、最初の出力「グーグル」、出力「w3big」、最終的な出力 "淘宝網"。

反復ループでは、$内の文字列の電流ループ_し、印刷出力を介して。 また、出力変数は、$ _のデフォルトで使用されている指定せずに印刷します。

次ものPerlなしでいくつかの状態である$ _場所を想定しています:

  • ORD()やint型()関数を含む単眼様々な機能、などに加えて "-t"すべてのファイルテスト( "-f"、 " - D")、 " - トン"デフォルトのアクションSTDIN。
  • このような印刷などの様々な機能、(のリスト)とはunlink()。
  • ときマッチング操作 "メートル//"、 "S ///"と "TR ///" "=〜"オペレータモードを使用しないでください。
  • 他の変数は "foreachの"ループを繰り返し変数のデフォルトを与えられていないとき。
  • 暗黙の繰り返し変数はgrep()およびマップ()関数。
  • ときにのみ、唯一の条件「ながら」、および条件は「 "動作テストの結果では、$ _入力レコードを格納するためのデフォルトの場所です。 起こらないだろう」一方、「テスト条件に加えて。 (記憶法:特定の操作に下線を省略することができます。)

特別な変数の型

以下のカテゴリーに分けることができる変数の使用の特別な性質によります

  • 特別なグローバルスカラー変数。

  • 特別なグローバル配列変数。

  • 特別なグローバル変数をハッシュ。

  • グローバル特殊ファイルハンドル。

  • グローバル特別な定数。

  • 特殊変数を正規表現。

  • ファイルには、特殊変数を扱います。

特別なグローバルスカラー変数

次の変数の形で特殊文字と英語を含むすべての特殊スカラ変数のリストです。

$ _ コンテンツに一致するデフォルトの入力とパターン。
$ ARG
$。 ファイルハンドルの前の読み取り現在の行番号
$ NR
$ / デフォルトでは、入力レコードの区切り、改行文字。 この変数はundefと同じようにファイルの終わりを読み込みます。
$ RS
$、 出力フィールドセパレータ
$ OFS
$ \ 出力レコードセパレータ
$ ORS
$ " 同じ$変数は、似ていますが、機会とスライス値の配列内に挿入された二重引用符(または類似の文字列補間)で囲まれた文字列に適用されます。 デフォルトは空白です。
$ LIST_SEPARATOR
$; 多次元配列のエミュレーション使用される区切り文字。 デフォルトは "\ 034"であります
$ SUBSCRIPT_SEPARATOR
$ ^ L チャネルは、給紙文字を取る出力に送られます。 デフォルトは "\のF」です。
$ FORMAT_FORMFEED
$: 文字列の形式は、継続フィールド(^で始まる)を埋めるために壊れている可能性があり、その後の文字の現在のセット。デフォルトは "\ n"は "です。
$ FORMAT_LINE_BREAK_CHARACTERS
$ ^ A 保存のための可変データのフォーマットを印刷する前に
$ ACCUMULATOR
$# あなたはデジタル既定デジタル出力フォーマット(廃止)印刷するとき。
$ OFMT
$? 外部コマンドの状態に戻ります
$ CHILD_ERROR
$! この変数の数値は、文字列値は、対応するシステムのエラー文字列errnoの値であります
$ OS_ERRORまたは$ ERRNO
$ @ それが空の場合はevalコマンドエラーメッセージは、それが正常に完了し、最後のevalコマンドを意味します
$ EVAL_ERROR
$$ 現在のプロセスIDを実行するためのPerlスクリプト
$ PROCESS_IDまたは$ PID
$ < 現在のプロセスの実際の加入者番号
$ REAL_USER_IDまたは$のUID
$> 現在のプロセスの実効ユーザー数
$ EFFECTIVE_USER_IDまたは$ EUID
$( ユーザグループの現在のプロセスの実際の数
$ REAL_GROUP_IDまたは$ GID
$) 現在のプロセスの実効ユーザグループ番号
$ EFFECTIVE_GROUP_IDまたは$ EGID
$ 0 ファイル名は、実行されるスクリプトを含みます
$ PROGRAM_NAME
$ [ 配列の配列の最初の要素のインデックスは、デフォルトは0です。
$] Perlのバージョン番号
$ PERL_VERSION
$ ^ D デバッグフラグの値
$デバッグ
$ ^ E 非UNIXオペレーティング・システム環境ではエラー情報を拡張
$ EXTENDED_OS_ERROR
$ ^ F 言っバンドルの最大ファイル識別子の値
$ SYSTEM_FD_MAX
$ ^ H コンパイラの構文チェック状態によって活性化されます
$ ^ I 内蔵エディタの制御値
$ INPLACE_EDIT
$ ^ M サイズのスペアメモリプール
$ ^ O オペレーティングシステム名
$ OSNAME
$ ^ P 現在のデバッガ内部変数の値を指定します。
$ PERLDB
$ ^ T 新世紀の初め以来、秒のペースは時間が不足し始めます
$ベースタイム
$ ^ W 警告スイッチの現在の値
$警告
$ ^ X Perlのバイナリ実行コード名
$ EXECUTABLE_NAME
$ ARGV ときのデフォルトのファイルハンドルから読み込まれ、現在のファイル名

特別なグローバル配列変数

@ARGV スクリプトコマンドライン引数リストへ
@INC あなたはモジュールディレクトリのリストをインポートするときに検索します
@F コマンドラインアレイを入力してください

特別なグローバル変数をハッシュ

%INC

キーワードは、ファイル名です含まINCを行うと、すべてのファイルが含まれている%をハッシュや文を必要とし、値は、ファイルのパスです。

%のENV

現在の環境変数を含みます

%SIG

信号リストとどのように対処します

グローバル特殊ファイルハンドル

ARGV

すべてのファイル名の配列変数@ARGVを通して特別なファイルハンドル

STDERR

標準出力ハンドルエラー

STDIN

標準入力ハンドル

STDOUT

標準出力ハンドル

DATA

特別なファイルハンドルの参照後のスクリプトの内容を含むファイル内のすべてのコンテンツ__END__フラグ。 またはコンテンツファイルのすべての参照がある__ DATA__、限り、あなたは、同じパケットデータに読んでいるように、後の__DATA__フラグが含まれています。

_(アンダースコア)

情報のための特別なファイルハンドルのキャッシュファイル(FSTAT、statおよびlstatも)。

グローバル特別な定数

__END__

スクリプトの論理的な終わり、後は無視テキスト。

__FILE__

現在のファイル名

__LINE__

現在の行番号

__PACKAGE__

現在のパッケージ名は、デフォルトのパッケージ名がメインです。

正規表現の特殊変数

$ N

最後のパターンマッチングのn番目の文字列を含みます

$&

前の成功したパターンマッチング文字列

$ MATCH

$ `

以前のコンテンツの成功に一致する最後の部分文字列

$ PREMATCH

$ '

サブ後のコンテンツ最後に成功したマッチ

$のPOSTMATCH

$ +

そして、最後の正規表現検索最後の括弧のマッチング形式。 例えば:

/Version: (.*)|Revision: (.*)/ && ($rev = $+);

$ LAST_PAREN_MATCH

ファイルには、特殊変数を扱います

$ |

各関数呼び出しの書き込みや印刷後にゼロに設定した場合、自動的に関数にfflushを呼び出して、書かれた内容は、ファイルを書き込みます

$ OUTPUT_AUTOFLUSH

$%

電流出力ページ番号

$ FORMAT_PAGE_NUMBER

$ =

現在のページの長さ。 デフォルトは60です。

$ FORMAT_LINES_PER_PAGE

$ -

残りの行の現在のページ番号

$ FORMAT_LINES_LEFT

$〜

レポートの出力形式の現在の名前。 デフォルト値は、ファイルハンドルの名前です。

$ FORMAT_NAME

$ ^

現在のレポート出力テーブル名ヘッダー形式。 デフォルト値は、接尾辞 "_TOP"ファイルハンドル名です。

$ FORMAT_TOP_NAME