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 |
$+ |