English 모듈

English 모듈

Ruby에는 $_ 같은 짧고 난해한 전역 변수가 몇 개 있어요. 물론 예전부터 있어 왔지만, 읽을 때마다 "이게 뭐였지?" 싶어지곤 하죠. 이 English 라이브러리 파일을 스크립트에 include하면, 그 전역 변수들을 아래처럼 덜 난해한 이름으로 참조할 수 있어요.

English 없이 쓰면 이렇게 보여요:

$\ = ' -- '
"waterbuffalo" =~ /buff/
print $', $$, "\n"

English를 쓰면 같은 일을 이렇게 씁니다:

require "English"

$OUTPUT_FIELD_SEPARATOR = ' -- '
"waterbuffalo" =~ /buff/
print $POSTMATCH, $PID, "\n"

$\$OUTPUT_FIELD_SEPARATOR, $'$POSTMATCH, $$$PID로 바뀌었죠. 읽는 사람 입장에서 훨씬 명확해 보여요. 아래가 설명적인 별칭과 그에 대응하는 전역 변수의 전체 목록이에요.

설명적 별칭 전역 변수
$ERROR_INFO $!
$ERROR_POSITION $@
$FS, $FIELD_SEPARATOR $;
$OFS, $OUTPUT_FIELD_SEPARATOR $,
$RS, $INPUT_RECORD_SEPARATOR $/
$ORS, $OUTPUT_RECORD_SEPARATOR $\
$NR, $INPUT_LINE_NUMBER $.
$LAST_READ_LINE $_
$DEFAULT_OUTPUT $>
$DEFAULT_INPUT $<
$PID, $PROCESS_ID $$
$CHILD_STATUS $?
$LAST_MATCH_INFO $~
$ARGV $*
$MATCH $&
$PREMATCH $`
$POSTMATCH $'
$LAST_PAREN_MATCH $+

출처: Ruby 4.0 API - English