프로그래밍 언어/Perl

Perl 입출력 기본부터 활용까지 파일 모드와 예제 코드 - Perl #6

eco7T 2024. 11. 26. 09:23
반응형

이번에는 프로그래밍을 하다 보면 자료를 참고한다든가, 수행 중 계산 결과를 잠시 저장한다든가 할 때 반드시 필요한 파일 입출력 기능에 대해 살펴보겠습니다.

Perl 입출력 기본부터 활용
Perl 입출력 기본부터 활용

 

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`)으로 파일을 다룹니다.
  • 파일을 열고 닫는 과정이 반복되어야 함을 꼭 기억하세요.
반응형