Tips in Action‎ > ‎기타‎ > ‎

파일 open, close 하기가 귀찮아...

전종필

텍스트 파일을 읽어 들일 때, open, close 하기가 귀찮을 때가 있습니다. (예! 사실 저도 그래요.)
파일이 확실히 있고, 또 읽어들이기만 하면 되는 경우에는 굳이 open과 close를 사용하지 않아도 됩니다. 방법은 파일의 경로를 배열 @ARGV에 넣어 주면 됩니다.
특정 파일을 읽어서 라인 번호를 앞에 붙여서 출력하는 간단한 스크립트를 만들어 봅시다.

@ARGV = ( '/etc/passwd' );
my $n = 1;
while(<>) {
	print "$n : $_";
	$n++;
}
다이아몬드 연산자라고 불리우는 <>는 배열 @ARGV에 들어 있는 파일이름들에 대해 파일을 열고 보통의 파일 핸들처럼 동작한 후 파일을 모두 읽으면 닫아줍니다. 그래서

open FH, '/etc/passwd' || die $!
my $n = 1;
while(<FH>) {
	print "$n : $_";
	$n++;
}
close FH;
대신에 사용할 수 있는 것입니다.
그런데 왜 이런 짓을 하느냐고요? 글쎄요, 별 차이는 없어 보이지만, 게으름은 우리의 미덕이지 않습니까?!
Comments