이번에는 프로그래밍을 하다 보면 자료를 참고한다든가, 수행 중 계산 결과를 잠시 저장한다든가 할 때 반드시 필요한 파일 입출력 기능에 대해 살펴보겠습니다.
Perl 파일 입출력
파일 열기와 닫기
Perl에서 파일을 열고 닫는 기본적인 방법을 먼저 살펴보겠습니다. 파일을 열기 위해서는 `open` 함수를 사용하고, 파일을 다 사용한 후에는 `close` 함수를 사용해 파일을 닫아야 합니다. 이 과정을 통해 파일이 손상되거나 예기치 않은 오류가 발생하는 것을 방지할 수 있습니다.
# 파일 열기
open(my $file_handle, '<', 'example.txt') or die "파일을 열 수 없습니다: $!";
# 파일 닫기
close($file_handle);
- `open` 함수는 파일을 열기 위한 함수로, 세 개의 주요 매개변수를 사용합니다.
- `$file_handle`: 파일을 다루기 위해 사용하는 핸들러입니다. 이것은 파일을 가리키는 변수 같은 역할을 합니다.
- `'<', 'example.txt'`: `'<'` 기호는 읽기 전용으로 파일을 열겠다는 의미입니다. `'example.txt'`는 열고자 하는 파일의 이름입니다.
- `or die "파일을 열 수 없습니다: $!";`는 파일을 열 수 없을 때 오류 메시지를 출력하고 프로그램을 종료시키는 역할을 합니다.
- `close($file_handle);`은 파일을 닫습니다. 파일을 다 사용한 후에는 반드시 닫아야 합니다.
파일에 데이터 쓰기
파일에 데이터를 쓰기 위해서는 파일을 쓰기 모드로 열어야 합니다. 쓰기 모드로 파일을 열기 위해서는 `'>'` 기호를 사용합니다.
# 파일 쓰기 모드로 열기
open(my $file_handle, '>', 'output.txt') or die "파일을 열 수 없습니다: $!";
# 파일에 데이터 쓰기
print $file_handle "안녕하세요, Perl 파일 입출력입니다!\n";
# 파일 닫기
close($file_handle);
- `'>'` 기호는 파일을 새로 작성하거나 기존 파일을 덮어쓰기 위해 사용됩니다.
- `print $file_handle "안녕하세요, Perl 파일 입출력입니다!\n";`는 파일 핸들을 통해 파일에 문자열을 작성하는 부분입니다. `\n`은 줄 바꿈을 의미합니다.
파일에서 데이터 읽기
파일에서 데이터를 읽는 방법도 매우 간단합니다. 이번에는 파일을 읽기 모드로 열고 파일 내용을 한 줄씩 읽어들이는 방법을 설명하겠습니다.
# 파일 읽기 모드로 열기
open(my $file_handle, '<', 'example.txt') or die "파일을 열 수 없습니다: $!";
# 파일에서 한 줄씩 읽기
while (my $line = <$file_handle>) {
print $line;
}
# 파일 닫기
close($file_handle);
- `while (my $line = <$file_handle>)`은 파일에서 한 줄씩 읽어오는 반복문입니다. 파일의 끝에 도달할 때까지 각 줄을 변수 `$line`에 저장합니다.
- `print $line;`은 읽어들인 각 줄을 화면에 출력하는 역할을 합니다.
파일 모드 요약
Perl에서는 파일을 열 때 다양한 모드를 사용할 수 있습니다. 아래는 주요 파일 모드를 정리한 표입니다.
파일모드 | 설명 |
< | 읽기 전용 |
> | 쓰기 전용 (덮어쓰기) |
>> | 쓰기 전용 (이어쓰기) |
파일에 이어쓰기
파일에 데이터를 추가하고 싶을 때는 `'>>'` 기호를 사용합니다. 기존 파일의 내용을 지우지 않고 새로운 데이터를 파일 끝에 추가합니다.
# 파일 이어 쓰기 모드로 열기
open(my $file_handle, '>>', 'output.txt') or die "파일을 열 수 없습니다: $!";
# 파일에 데이터 추가하기
print $file_handle "새로운 내용이 추가되었습니다.\n";
# 파일 닫기
close($file_handle);
`'>>'` 기호는 기존 파일에 새로운 내용을 추가하기 위해 사용합니다.
기존 파일의 내용이 삭제되지 않고, 새로운 내용이 파일의 마지막에 추가됩니다.
예제 코드
이번에는 파일의 내용을 다른 파일로 복사하는 예제를 실습해 보겠습니다.
# 원본 파일 열기
open(my $input_handle, '<', 'example.txt') or die "원본 파일을 열 수 없습니다: $!";
# 복사본 파일 열기
open(my $output_handle, '>', 'copy.txt') or die "복사본 파일을 열 수 없습니다: $!";
# 원본 파일에서 한 줄씩 읽어 복사본 파일에 쓰기
while (my $line = <$input_handle>) {
print $output_handle $line;
}
# 파일 닫기
close($input_handle);
close($output_handle);
- `'example.txt'` 파일의 내용을 읽어서 `'copy.txt'` 파일에 그대로 복사합니다.
- 두 개의 파일 핸들을 사용하여, 하나는 읽기용 (`$input_handle`), 하나는 쓰기용 (`$output_handle`)으로 파일을 다룹니다.
- 파일을 열고 닫는 과정이 반복되어야 함을 꼭 기억하세요.
'프로그래밍 언어 > Perl' 카테고리의 다른 글
Perl 프로그래밍 CPAN 모듈 설치와 Perl 패키지 활용법, 네임스페이스 충동 방지 방법 - Perl #8 (0) | 2024.12.04 |
---|---|
Perl 서브루틴, 함수 호출부터 반환값까지 이해하기 - Perl #7 (0) | 2024.11.27 |
Perl 프로그래밍 문자열 처리 및 정규 표현식 - Perl #5 (0) | 2024.11.25 |
Perl 데이터 구조 배열, 리스트와 해시 활용 방법 - Perl #4 (0) | 2024.11.24 |
Perl 프로그래밍 제어 구조, 조건문과 반복문 - Perl #3 (0) | 2024.11.23 |