$_, $! 등 설명.
$_
$_ 는 쉽게 말해 자연어의 '그거' 와 비슷하다. 예를 들면 다음 코드는
while ($inputLine = <STDIN>) {
print($inputLine);
}
다음과 같이 쓸 수 있다. while (<STDIN>) {
print();
}
그 이유는 if 문의 내부 혹은 print 문의 내부에 argument 를 지정해주지 않으면 그것은 디폴트 파라메터인 $_ 가 되기 때문이다. 즉 위 코드는 아래 코드와 동일. while ($_ = <STDIN>) {
print($_);
}
이는 단지 syntactic sugar 라기보다는 Perl 의 귀차니즘 철학을 잘 나타내주는 핵심기능으로 매우 자주 쓰인다.$_의 사용예
$FILE = "/Users/hur/new/Work cur/scripts/MyPerlScripts/testText.txt";
open(FILE);
foreach (<FILE>) {
chomp();
print();
print(" ");
}
close(FILE);
위 코드에서 foreach 의 대상이 되는 변수도, chomp() 의 대상이 되는 변수도, print() 의 대상이 되는 변수도 전혀 지정되지 않았다. 이런 경우는 '그거' 즉 $_ 를 대상으로 삼는다. 즉 위 코드는 아래의 것과 동일하다. $FILE = "/Users/hur/new/Work cur/scripts/MyPerlScripts/testText.txt";
open(FILE);
foreach $_(<FILE>) {
chomp($_);
print($_);
print(" ");
}
close(FILE);
$/
이것은 input record separator 라고 하여 Diamond operator 가 읽어오는 단위를 결정해준다.
디폴트값은 newline 이다. 즉 $/ 가 디폴트값인 newline 으로 되어 있으면 $line = <FILE> 을 실행할 때 newline 단위로 한줄씩 읽어온다.
$!
$! 는 최근의 error number이다.
open (F, $filepath) or die "can not open file. Error number : $!"; 와 같이 씀.
기타
$& 는 속도를 떨어뜨리므로 쓰지 않는게 좋다고 함 (출처)
No comments:
Post a Comment