지역 변수
펄의 지역 변수
편집펄은 동적 지역 변수와 사전적(lexically-scoped) 지역 변수를 둘 다 지원한다. local
키워드를 사용하면 동적 지역 변수를 정의할 수 있으며, my
를 사용하면 사전적 지역 변수를 정의할 수 있다. 동적 변수 지정은 오늘날 흔히 쓰이는 것이 아니므로 펄 문서는 "local
은 대부분의 사람들이 "local"로 생각하는 것이 아니다"라고 경고한다.[1] 그 대신, local
키워드는 일시적인, 동적 값을 전역(package) 변수에 제공하며, 감싸고 있는 블록의 끝에 이를 때까지 지속된다. 그러나 해당 변수는 블록 내에서 호출된 모든 함수들의 측면에서 투명하다.[2] 사전적 지역 변수를 만들기 위해 my
연산자를 대신 사용한다.[3]
동작 방식을 이해하기 위해 다음의 코드를 고려할 수 있다:
$a = 1;
sub f() {
local $a;
$a = 2;
g();
}
sub g() {
print "$a\n";
}
g();
f();
g();
출력물은 다음과 같다:
1 2 1
같이 보기
편집각주
편집이 글은 프로그래밍 언어에 관한 토막글입니다. 여러분의 지식으로 알차게 문서를 완성해 갑시다. |