전종필 텍스트 파일을 읽어 들일 때, 파일 전체를 하나의 스칼라 변수로 읽어 들일 필요가 있을 수 있습니다. 보통은 로 하거나, 좀 게으른 경우라면,
할 것입니다. 파일 핸들을 할당연산자(=) 뒤에 사용하면, Perl은 파일의 내용을 한 줄씩 읽어
옵니다.그러나, 사실을 명확히 말하면 ``한 줄씩''읽는 것이 아니라, 특수변수 $/ 에 있는 값을 파일에서 만날때까지 읽은 후 반환하는데, $/에는 기본값으로 "\n"이 들어 있기 때문에, 한 줄씩 읽는 것이라고 생각이 될 뿐입니다. 만일 $/ 변수에 ``:''과 같은 문자를 저장한다면 Perl은 한번에 ``:''문자가 나올 때 까지 읽어서 반환합니다. 이 것을 이용하여 이 변수에 undef 값을 설정하게 되면, Perl은 결국 undef값을 찾을 수 없어서 파일의 끝까지 한꺼번에 읽게 됩니다. 이 방법은 다이아몬드 연산자 <>에도 똑같이 적용됩니다.
단, 이 경우 $whole = <>; 는 첫 번째 파일에만 적용이
됩니다. @ARGV에 주어진 모든 파일의 내용을 읽어 들이려면,
이라고 해야 합니다. |
Tips in Action > 문자열 >