71 lines
1.3 KiB
Markdown
71 lines
1.3 KiB
Markdown
# I/O
|
|
|
|
## 표준입력
|
|
|
|
```perl
|
|
my $line = <STDIN>;
|
|
print "Input = $line\n";
|
|
```
|
|
|
|
## 파일 I/O
|
|
|
|
```perl
|
|
# 파일 핸들러를 쓰기 모드로 엽니다.
|
|
open(FILE, '>', "file.txt") or die $!; # 핸들러, 모드, 파일이름
|
|
|
|
# 파일에 문자열을 출력합니다.
|
|
print FILE "Hello";
|
|
|
|
# 파일 핸들러를 닫습니다.
|
|
close(FILE);
|
|
```
|
|
|
|
| 모드 | |
|
|
| --- | --- |
|
|
| <, r | 읽기 모드 |
|
|
| >, w | 쓰기 모드. 파일이 없으면 생성. 기존 데이터는 제거됨. |
|
|
| >>, a | 추가 모드. 파일이 없으면 생성. |
|
|
| +<, r+ | 읽기 및 쓰기 |
|
|
| +>, w+ | 읽기 및 쓰기. 파일이 없으면 생성. 기존 데이터는 제거됨. |
|
|
| +>>, a+ | 읽기 및 쓰기. 추가 모드. 파일이 없으면 생성. |
|
|
|
|
### 파일 읽기
|
|
|
|
파일 핸들러로부터 한 줄을 읽으려면 다음과 같이 합니다.
|
|
|
|
```perl
|
|
$line = <FILE>;
|
|
```
|
|
|
|
여러 줄을 한 번에 읽으려면 배열을 사용합니다.
|
|
|
|
```perl
|
|
@lines = <FILE>;
|
|
```
|
|
|
|
대부분의 경우, 아래와 같이 반복문으로 처리합니다.
|
|
|
|
```perl
|
|
open(FILE, '<', 'file.txt') or die $!;
|
|
|
|
while (<FILE>){
|
|
$line = $_;
|
|
}
|
|
|
|
close(FILE);
|
|
```
|
|
|
|
## 디렉토리
|
|
|
|
- opendir
|
|
- readdir
|
|
- closedir
|
|
|
|
```perl
|
|
opendir(DIR, $dirname) || die "Error in opening dir $dirname";
|
|
|
|
while($filename = readdir(DIR)){
|
|
print($filename,"\n");
|
|
}
|
|
closedir(DIR);
|
|
``` |