特殊変数のエイリアス
■この章で解説するモジュール
English
■この章でできること
・特殊変数を英語名で使う

 Perlには特殊変数があります。よく使うものとして暗黙の変数$_などがあります。Englishモジュールを使うと、これらの特殊変数をわかりやすい英語名で使用することができるようになります。Englighモジュールで使用できる特殊変数のエイリアス名には次のようなものがあります。

Perl
英語名
$^A
$ACCUMULATOR
$_
$ARG
$^T
$BASETIME
$?
$CHILD_ERROR
$^C
$COMPILING
$^D
$DEBUGGING
$)
$EFFECTIVE_GROUP_ID
$>
$EFFECTIVE_USER_ID
$)
$EGID
$!
$ERRNO
$>
$EUID
$@
$EVAL_ERROR
$^S
$EXCEPTIONS_BEING_CAUGHT
$^X
$EXECUTABLE_NAME
$^E
$EXTENDED_OS_ERROR
$^L
$FORMAT_FORMFEED
$:
$FORMAT_LINE_BREAK_CHARACTERS
$-
$FORMAT_LINES_LEFT
$=
$FORMAT_LINES_PER_PAGE
$~
$FORMAT_NAME
$%
$FORMAT_PAGE_NUMBER
$^
$FORMAT_TOP_NAME
$(
$GID
$^I
$INPLACE_EDIT
$.
$INPUT_LINE_NUMBER
$/
$INPUT_RECORD_SEPARATOR
$+
$LAST_PAREN_MATCH
$^R
$LAST_REGEXP_CODE_RESULT
$^N
$LAST_SUBMATCH_RESULT
$"
$LIST_SEPARATOR
$.
$NR
$,
$OFS
$\
$ORS
$!
$OS_ERROR
$^O
$OSNAME
$|
$OUTPUT_AUTOFLUSH
$,
$OUTPUT_FIELD_SEPARATOR
$\
$OUTPUT_RECORD_SEPARATOR
$^V
$PERL_VERSION
$^P
$PERLDB
$$
$PID
$$
$PROCESS_ID
$0
$PROGRAM_NAME
$(
$REAL_GROUP_ID
$<
$REAL_USER_ID
$/
$RS
$;
$SUBSCRIPT_SEPARATOR
$;
$SUBSEP
$^F
$SYSTEM_FD_MAX
$<
$UID
$^W
$WARNING

 実際の使用方法は次のようになります。

#!/usr/bin/perl

#############################################
# 特殊変数のエイリアスのサンプル
# Author: "Perl Programming Tips"
#############################################

use English;

print "UID: $UID\n";
print "PID: $PROCESS_ID\n";

$ret = &sub_double(3);
print "$ret\n";

sub sub_double
{
    return ($ARG[0] *2);
}

 出力結果は次のようになります。

[g@630m pl]$ perl special01_01.pl
UID: 500
PID: 5799
6
[g@630m pl]$

 最初にuse EnglishでEnglishモジュールをインポートしておけば、そのまま英語名の特殊変数が使用できます。ただし、Englishモジュールを使用すると、正規表現の処理速度が低下するので注意が必要です。