Perl 특수 변수
Perl 언어는 일반적으로 $, @ 또는 % 접두사가 붙는 몇 가지 특수 변수를 정의합니다(예: $_).
많은 특수 변수에는 긴 영어 이름이 있습니다. $OS_ERROR로 운영 체제 변수를 쓸 수 있습니다.
특수변수에 영어 이름을 사용하려면 프로그램 헤더에 use English;를 추가해야 합니다. 이를 통해 설명적인 영어 특수 변수를 사용할 수 있습니다.
가장 일반적으로 사용되는 특수 변수는 $_이며 기본 입력 및 패턴 일치 내용이 포함되어 있습니다. 예는 다음과 같습니다.
#!/usr/bin/perl foreach ('Google','php','Taobao') { print $_; print "\n"; }
위 프로그램을 실행하면 출력 결과는 다음과 같습니다.
Google php Taobao
다음 예에서는 내용을 출력하기 위해 $_를 사용하지 않습니다.
#!/usr/bin/perl foreach ('Google','php','Taobao') { print; print "\n"; }
위 프로그램을 실행하면 출력 결과는 다음과 같습니다. :
Google php Taobao
예제에서는 "Google"이 먼저 출력되고 그 다음 "php"가 출력되고 마지막으로 "Taobao"가 출력됩니다.
반복 루프에서는 현재 루프의 문자열을 $_에 넣은 후 print를 통해 출력합니다. 또한 print는 출력 변수를 지정하지 않으며 기본적으로 $_가 사용됩니다.
지정되지 않은 경우에도 Perl이 $_를 가정하는 곳은 다음과 같습니다.
ord() 및 int( )와 같은 다양한 단항 함수 이러한 함수 기본적으로 STDIN을 실행하는 "-t"를 제외한 모든 파일 테스트 작업("-f", "-d")입니다.
print(), unlink() 등 다양한 목록 기능.
"=~" 연산자를 사용하지 않고 "m//", "s///" 및 "tr///" 패턴 일치 작업을 수행합니다.
은 다른 변수가 지정되지 않은 경우 "foreach" 루프의 기본 반복 변수입니다.
grep() 및 map() 함수에 대한 암시적 반복 변수입니다.
"while"에 조건이 하나만 있고 조건이 "" 연산의 결과를 테스트하는 경우 $_가 입력 레코드를 저장하는 기본 위치입니다. 이는 "while" 테스트 조건을 제외하고는 발생하지 않습니다. (니모닉: 특정 연산에서는 밑줄이 생략될 수 있습니다.)
특수변수 종류
특수변수의 사용 성격에 따라 구분될 수 있습니다. 다음 범주로 분류:
전역 스칼라 특수 변수.
전역 배열 특수 변수입니다.
전역 해시 특수 변수입니다.
글로벌 특수 파일 핸들입니다.
전역 특수 상수입니다.
정규 표현식 특수 변수입니다.
파일 핸들 특수 변수입니다.
전역 스칼라 특수 변수
다음은 특수 문자와 영어 변수를 포함한 모든 스칼라 특수 변수 목록입니다.
$_ | 기본 입력 및 패턴 일치 콘텐츠입니다. |
$ARG | |
$. | 마지막으로 읽은 파일 핸들의 현재 줄 번호 |
$NR | |
$/ | 레코드 구분 기호를 입력하세요. 기본값은 개행 문자입니다. undef 변수를 사용하면 파일의 끝 부분을 읽습니다. |
$RS | |
$, | 출력 도메인 구분 기호 |
$ OFS | |
$ | 출력 레코드 구분 기호 |
$ORS | |
$ " | 이 변수는 $와 유사하지만 배열 및 슬라이스 값을 큰따옴표로 묶인 문자열(또는 유사한 보간된 문자열)로 보간하는 데 사용해야 합니다. 기본값은 공백입니다. |
$LIST_SEPARATOR | |
$; | 다차원 배열을 시뮬레이션할 때 사용되는 구분 기호는 기본적으로 ". |
$OFMT | |
$? | 마지막 외부 명령의 상태를 반환합니다 |
$CHILD_ERROR | |
$! | 이 변수의 숫자값은 errno값이고, 문자열값은 해당 시스템 오류 문자열입니다 |
$OS_ERROR 또는 $ERRNO | |
$@ | 명령어의 오류 메시지가 비어 있으면 다음을 의미합니다. 마지막 평가 명령이 성공적으로 실행되었습니다. |
$EVAL_ERROR | |
$$ | 현재 Perl 스크립트를 실행하는 프로세스 번호 |
$PROCESS_ID 또는 $PID | |
$< | 현재 프로세스의 실제 사용자 ID |
$REAL_USER_ID 또는 $UID | |
$> | 현재 프로세스의 유효 사용자 ID |
$EFFECTIVE_USER_ID 또는 $EUID | |
$( | 현재 프로세스의 실제 그룹 사용자 ID |
$ REAL_GROUP_ID 또는 $GID | |
$) | 현재 프로세스의 유효 그룹 사용자 ID |
$EFFECTIVE_GROUP_ID 또는 $EGID | |
$0 | 실행 중인 스크립트의 파일 이름이 포함됩니다. |
$PROGRAM_NAME | |
$[ | 배열의 배열 요소의 첨자, 기본값은 0입니다. |
$] | Perl 버전 번호 |
$PERL_VERSION | |
$^D | 디버그 플래그 값 |
$DEBUGGING | |
$^E | UNIX가 아닌 환경의 OS 확장 오류 메시지 |
$EXTENDED_OS_ERROR | |
$^F | 최대 파일 번들 설명자 값 |
$SYSTEM_FD_MAX | |
$^H | 구문 검사 상태 활성화됨 컴파일러에 의해 |
$^I | 내장 컨트롤 편집기 값 |
$INPLACE_EDIT | |
$^M | 백업 메모리 풀 크기 |
$^O | 운영 체제 이름 |
$OSNAME | |
$^P | 현재 디버그 값을 지정하는 내부 변수 |
$PERLDB | |
$^T | 새 세기가 시작될 때부터 스크립트가 실행되기 시작하는 시간(초) |
$BASETIME | |
$^W | 경고 스위치의 현재 값 |
$WARNING | |
$^X | 경고 스위치의 이름 Perl 바이너리 실행 코드 |
$EXECUTABLE_NAME | |
$ARGV | 기본 파일 핸들에서 읽을 때 현재 파일 이름 |
전역 배열 특수 변수
@ARGV
| 스크립트에 전달된 명령줄 매개변수 목록
| @INC<🎜> | 모듈 가져오기 시 검색할 디렉터리 목록<🎜><🎜><🎜> | @F<🎜 > | 명령줄에서 배열 입력<🎜><🎜><🎜><🎜><🎜>전역 해시 특수 변수<🎜>
|