파일 핸들 사용법: Perl을 통한 파일 처리 기초
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
Perl 초보 개발자 및 파일 I/O 기초를 배우고자 하는 프로그래머
난이도: 중간 (기초 문법 이해 필요)
핵심 요약
- Perl에서 파일 처리는
open
함수와 파일 핸들(FH
)을 사용하여 수행하며,"<"
,">"
," >>"
등 다양한 모드로 파일을 열 수 있음. - 에러 처리는
die
함수로 강제 종료하여 안정적인 프로그래밍 가능. - 파일 읽기/쓰기 후 반드시
close
로 자원 해제해야 하며, 디렉터리 조작은opendir
,readdir
,closedir
사용. - 모듈화된 로깅 기능 구현을 통해 파일 처리 실무 적용 가능.
섹션별 세부 요약
1. 파일 열기 및 모드 설정
open
함수 사용 시 파일 핸들, 모드, 파일명 3가지 인수 필요.- 모드 예시:
- <
: 읽기 전용 (예: open(FH, "<", "file.txt")
)
- >
: 파일 내용 덮어쓰기 (트리미네이트)
- >>
: 파일 끝에 내용 추가 (Append)
- 바이너리 모드(
:raw
)와 인코딩(:utf8
) 지원.
2. 파일 읽기 및 처리
readline
또는
로 한 줄씩 읽기 가능.- 예시:
```perl
while (my $line = <$fh>) { print "$line"; }
```
or die
문으로 파일 열기 실패 시 예외 처리.
3. 파일 닫기 및 디렉터리 조작
close($fh)
로 파일 핸들 해제 및 변경사항 저장.- 디렉터리 열기:
opendir(my $dir, '/path/to/dir')
.
및..
특수 항목 필터링 (next if ($entry =~ /^\.\.?$/)
).
4. 파일 존재 여부 체크 및 플래그 사용
-e
,-f
,-d
등 파일/디렉터리 상태 확인 플래그 사용.- 예:
-e "file.txt"
는 파일 존재 여부 확인.
5. `Personal::Log` 모듈 구현 예시
Module::Starter
로 모듈 생성 후 테스트 파일(t/01-log.t
) 작성.new
메서드: 파일 존재 시 기존 내용 읽기, 미존재 시 빈 배열 초기화.log
메서드: 메시지 추가 및 파일에 쓰기 (" >>"
모드 사용).
결론
- 파일 처리 시 항상
die
로 에러 처리하고,close
로 자원 해제. - 디렉터리 조작 시 특수 항목(
.
및..
) 제외. - 모듈화된 로깅 기능 구현을 통해 파일 I/O 실무 적용 가능.