| 000 | 00000nam c2200205 c 4500 | |
| 001 | 000000687603 | |
| 005 | 20250625160518 | |
| 007 | ta | |
| 008 | 010103s2000 ulka 001c kor | |
| 020 | ▼a 8979140819 ▼g 13560 | |
| 040 | ▼a 211009 ▼c 211009 ▼d 211009 | |
| 041 | 1 | ▼a kor ▼h eng |
| 049 | 0 | ▼l 121049841 ▼l 121049842 ▼l 121049843 |
| 082 | 0 0 | ▼a 005.13/3 ▼2 22 |
| 085 | ▼a 005.133 ▼2 DDCK | |
| 090 | ▼a 005.133 ▼b P451 2000 | |
| 100 | 1 | ▼a Christiansen, Tom, ▼d 1963- ▼0 AUTH(211009)101878 |
| 245 | 1 0 | ▼a 펄쿡북 / ▼d 톰 크리스찬센 ; ▼e 네이던 토킹턴 저 ; ▼e 안계용 역 |
| 246 | 1 9 | ▼a Perl cookbook |
| 260 | ▼a 서울 : ▼b 한빛미디어, ▼c 2000 | |
| 300 | ▼a 905 p. : ▼b 삽화 ; ▼c 26 cm | |
| 500 | ▼a 색인수록 | |
| 500 | ▼a 펄 프로그래머를 위한 해법과 예제 총집합 | |
| 650 | 0 | ▼a Perl (Computer program language) |
| 700 | 1 | ▼a Torkington, Nathan, ▼e 저 |
| 700 | 1 | ▼a 안계용, ▼e 역 |
| 900 | 1 0 | ▼a 크리스찬센, 톰, ▼e 저 |
| 900 | 1 0 | ▼a 토킹턴, 네이던, ▼e 저 |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/보존서고5(동양서)/ | 청구기호 005.133 P451 2000 | 등록번호 121049841 (28회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 2 | 소장처 과학도서관/보존서고5(동양서)/ | 청구기호 005.133 P451 2000 | 등록번호 121049842 (15회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 3 | 소장처 과학도서관/보존서고5(동양서)/ | 청구기호 005.133 P451 2000 | 등록번호 121049843 (19회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
이 책은 펄을 좀더 배우고자 하는 사람, 즉 펄의 기본은 알고 있지만, 이러한 모든 요소들을 혼합하여 완벽한 프로그램을 작성하는 방법을 알고 싶어하는 사람들을 위한 것이다. 20개에 걸친 단원들과 300개 이상의 주제들은 다양한 펄 프로그래밍 주제들에 대하여 자세히 설명한다.
전문가는 물론이고 초보자들이 자주 접할 수 있는 문제들에 대한 다양한 솔루션을 포함하고 있다. 펄 프로그래밍 기술에 대한 초보적인 질문으로부터 프로그래밍 전문가도 배워야할 모든 것을 다루었다고 할 수 있다.
또한 펄 프로그래밍을 할 때 직면하는 모든 문제들과 이에 대한 해결책들, 그리고 예제 코드를 제공한다. 문자열 파싱에 대한 묘책, 매트릭스 멀티플리케이션하는 방법, 배열과 해시로 작업하는 방법, 복잡한 정규식 표현을 수행하는 방법 등 수백가지의 펄 프로그래밍 비책을 설명한다.
전체적인 구성은 펄의 뼈대를 이루는 문법적인 요소를 따랐다. 그 요소에 따라 다양한 문제를 약 20여 가지를 제시한다. 문제는 요구사항, 해결 방안, 검토사항,참고자료로 구성된다. 요구사항에는 특정 상황을 설명하고 가정으로서 제한을 둔다.
해결방안에는 코드를 직접 구현함으로써 해결책을 제시한다. 검토사항에는 그 속에서 일어날 수 있는 기타 여러 가지 사항들을 검토하게 해줌으로써 개발자의 시야를 넓히고 응용력을 길러준다. 마지막으로 참고자료를 제시함으로써 독자가 쉡게 문서를 찾을 수 있게 확실한 이정표까지 제시하는 깔끔한 구성을 제공한다. 그리고 각 장의 마지막에는 온전한 애플리케이션을 제시함으로서 끝을 맺는다.
주요 내용은 문자열 관련해서 각종 조작법을 상기 구성으로서 설명하였고, 여러 가지 숫자를 처리한다거나 날짜를 조작하거나 배열 혹은 해시에 관한 다양한 상황 설정과 해결책을 제시한다.
정보 검색에서 강력한 기능을 발휘하는 패턴 매칭뿐만 아니라, 파일 처리 관련 수많은 문제 제기와 소스코드를 제공한다. 또한 데이터베이스에서 사용자 인터페이스까지 범위를 확장하고 있을 뿐만 아니라, 통신이나 인터넷 서비스 관련 내용도 포함하고 있다.
끝으로 CGI 프로그램을 작성할 때, 그 안전성 측면이나 쿠기 관리 등 다양한 정보를 제공하고 웹의 자동화라는 주제로 그 끝을 맺고 있다.
펄의 창시자 래리 월(Larry Wall)을 비롯해 여러 펄 프로그래머들이 이 책의 내용을 감수하였다.
정보제공 :
저자소개
톰 크리스티안센(지은이)
래리 월이 1987년에 처음으로 펄을 발표한 뒤로 계속해서 펄 개발과 강좌를 해오고 있다. 위스콘신 주립대학 매디슨 캠퍼스에서 스페인어와 컴퓨터과학 학사 학위를 받았으며, 컴퓨터과학 분야에서 OS 설계 및 컴퓨터 언어학으로 석사 학위를 받았다. 『Programming Perl』의 공동 저자이기도 하다. 펄 관련 교육과 저술에서 탁월한 프리랜스 컨설턴트이다. 컨벡스(Convex)에서 시스템 관리자로 고객 지원과 교육뿐 아니라 유틸리티나 커널 개발에 이르기까지 만물박사로 활약했으며 유즈닉스협회(Usenix Society) 회장으로 두 차례의 임기를 봉사하기도 했다.
네이던 토킹톤(지은이)
타이 포인트 출신이고 웰링톤의 빅토리아 대학교를 졸업하였다. 현재 펄 강사이며, '펄 저널(The Perl Journal)'의 편집자로 활동하고 있다.
안계용(옮긴이)
수년간 인터넷과 관련하여 다양한 프로젝트를 수행한 경험이 있고, 특히 펄을 이용하여 각종 웹사이트 및 솔루션을 구축한 사례가 있다. 마이크로소프트에서 선보일 예정인 비주얼 펄과 대형 시스템 구축에 많은 관심을 가지고 있으며, 과거 컴퓨터 게임 전문 필자로 활동한 경력이 있다. 여가 시간에는 컴퓨터 음악, 미디(MIDI)를 배우는 것을 즐기며, 현재 CyberCVS에서 프로그래머로 근무하고 있다.
목차
목차 역자서문 = 5 차례 = 7 추천의 글 = 19 서문 = 23 1장. 문자열 1.0. 개요 = 37 1.1. 문자열의 일부만을 액세스하기 = 40 1.2. 기본값 설정하기 = 44 1.3. 임시변수를 사용하지 않고 값을 교체하기 = 47 1.4. ASCⅡ캐릭터와 해당 값을 서로 변환하기 = 48 1.5. 문자열 내의 각 캐릭터들을 한번에 하나씩 처리하기 = 50 1.6. 문자열의 단어나 캐릭터를 역순으로 처리하기 = 53 1.7. 탭문자 변환하기 = 55 1.8. 사용자의 입력에 따른 변수 처리하기 = 57 1.9. 대소문자 처리하기 = 59 1.10. 문자열 내에서 함수나 수식 처리하기 = 62 1.11. Here Document에 들여쓰기를 적용하기 = 64 1.12. 단락 서식 변경하기 = 69 1.13. 이스케이프 문자로 처리하기 = 71 1.14. 문자열의 끝부분에서 공백문자 제거하기 = 73 1.15. 콤마로 분리된 자료를 파싱하기 = 74 1.16 발음이 비슷한 문자열을 매치하기 = 76 1.17. 예제 프로그램 : fixstyle = 77 1.18. 예제 프로그램 : psgrep = 81 2장 숫자 2.0. 개요 = 87 2.1. 문자열이 유효한 숫자를 나타내는지를 체크하기 = 89 2.2. 부동 소수점 숫자 비교하기 = 90 2.3. 부동 소수점 숫자 라운딩하기 = 92 2.4. 바이너리와 정수값을 서로 변환하기 = 93 2.5. 정수의 연속적인 집합을 처리하기 = 95 2.6. 로마 숫자 처리하기 = 97 2.7. 난수 생성하기 = 98 2.8. 서로 다른 난수 생성하기 = 99 2.9. 좀더 무작위적인 난수 생성하기 = 100 2.10. 편향성을 가지는 랜덤 숫자 생성하기 = 101 2.11. 삼각법 사용하기 = 103 2.12. 삼각함수 활용하기 = 105 2.13. 대수 처리하기 = 106 2.14. 행렬 곱셈 처리하기 = 107 1.15. 복소수 적용하기 = 109 2.16. 8진수 및 16진수 처리하기 = 111 2.17. 숫자를 콤마에 표기하기 = 112 2.18. 상황에 적합하게 단수, 복수를 처리하기 = 113 2.19. 예제 프로그램 : 프라임 팩터 처리하기 = 116 3장. 날짜와 시간 3.0. 개요 = 119 3.1. 현재 날짜 구하기 = 122 3.2. DMYHMS 형식을 에포크 형식을 변환하기 = 124 3.3. 에포크 형식을 DMYHMS 형식으로 변환하기 = 125 3.4. 날짜를 이용한 가감 처리 = 126 3.5. 두 날짜 사이의 차를 구하기 = 128 3.6. 주, 월, 연도를 기준으로 처리하기 = 130 3.7. 임의의 문자열로부터 날짜, 시간을 파싱하기 = 131 3.8. 날짜 출력하기 = 133 3.9. 정교한 타이머를 이용하기 = 135 3.10. 잠시 작업을 중단하기 = 138 3.11. 예제 프로그램 : hopdelta = 139 4장. 배열 4.0. 개요 = 143 4.1. 프로그램에서 목록을 처리하기 = 145 4.2. 콤마와 함께 목록을 출려하기 = 147 4.3. 배역 크기 조절하기 = 150 4.4. 목록에 있는 모든 요소들을 대상으로 처리하기 = 152 4.5. 참조를 이용하여 배열에 대해 반복 처리하기 = 157 4.6. 목록으로부터 중복된 값을 제거하기 = 158 4.7. 두 배역 중 한 배열에만 속하는 요소 구하기 = 160 4.8. 교집합, 차집합, 합집합 구하기 = 162 4.9. 한 배열을 다른 배열의 끝에 추가하기 = 165 4.10. 배열을 역순으로 변환하기 = 166 4.11 배열에 포함되어 있는 여러 개의 요소들을 처리하기 = 167 4.12. 테스트를 통과한 목록의 첫 번째 요소 구하기 = 168 4.13. 특정 조건을 만족시키는 목록 내의 모든 요소 구하기 = 171 4.14. 배열을 숫자순으로 정렬하기 = 173 4.15. 원하는 조건에 맞게 목록을 정렬하기 = 175 4.16. 순환 목록 구현하기 = 180 4.17. 배열 요소들의 순서를 무작위로 처리하기 = 181 4.18. 예제 프로그램 : words = 182 4.19. 예제 프로그램 : permute = 185 5장. 해시 5.0. 개요 = 189 5.1. 해시를 요소에 추가하기 = 191 5.2. 해시에 키값이 존재하는지를 조사 = 193 5.3. 해시로부터 요소를 삭제하기 = 195 5.4. 해시의 모든 요소들을 대상으로 처리하기 = 197 5.5. 해시 출력하기 = 201 5.6. 해시를 입력순으로 처리하기 = 202 5.7. 한 키에 여러 개의 값을 할당하기 = 203 5.8. 해시를 역으로 처리하기 = 205 5.9. 해시 정렬하기 = 208 5.10. 서로 다른 해시들을 통합하기 = 209 5.11. 두 해시에 대한 공통, 혹은 서로 다른 키 구하기 = 211 5.12. 해시에서 참조 처리하기 = 212 5.13. 해시에 사용될 메모리를 미리 할당하기 = 214 5.14. 가장 많이 활용되는 항목 조사하기 = 215 5.15. 자료간의 상관 관계를 표현하기 = 216 5.16. 예제 프로그램 : dutree = 218 6장. 패턴 매칭 6.0. 개요 = 225 6.1. 복사 및 치환을 동시에 수행하기 = 232 6.2. 글자 매칭하기 = 233 6.3. 단어 매칭하기 = 235 6.4. 정규 표현에 주석 달기 = 236 6.5. N번째로 발생하는 매치 찾기 = 239 6.6. 여러 개의 라인을 매치하기 = 242 6.7. 패턴 분리자를 이용하여 레코드 읽어들이기 = 246 6.8. 여러 개의 라인을 추출해내기 = 247 6.9. 쉘 glob를 정규 표현처럼 매치시키기 = 251 610. 삽입된 매치 작업의 속도를 빠르게 하기 = 252 6.11. 유효한 패턴인지의 여부를 테스트하기 = 257 6.12. 정규 표현에서 Locale 설정을 따르도록 하기 = 260 6.13. 근사적으로 매치시키기 = 262 6.14. 마지막 패턴이 있던 곳으로부터 매치하기 = 263 6.15. Greedy 및 Non-Greedy 매치 처리하기 = 265 6.16. 중복된 단어 조사하기 = 267 6.17. AND, OR, NOT을 한 패턴에 표현하기 = 271 6.18. 멀티 바이트 캐릭터 매치시키기 = 276 6.19. 유효한 이메일 주소 매치시키기 = 281 6.20. 약자 매치시키기 = 283 6.21. 프로그램 : urlify = 285 6.22. 프로그램 : tcgrep = 286 6.23. 정규 표현 응용 예제 = 294 7장. 파일 액세스 7.0. 개요 = 299 7.1. 파일 열기 = 304 7.2. 독특한 이름을 가진 파일 열기 = 309 7.3. 파일명에 있는 ~ 기호 처리하기 = 310 7.4. 에러 발생시 파일명을 리포트하기 = 311 7.5. 임시 파일 생성하기 = 312 7.6. 프로그램 텍스트 내에 파일 저장하기 = 314 7.7. 필터 작성하기 = 316 7.8. 임시 파일을 이용하여 파일을 적절히 수정하기 = 321 7.9. -i 옵션을 이용하여 파일을 적절히 수정하기 = 323 7.10. 임시 파일을 이용하지 않고 파일을 적절히 수정하기 = 325 7.11. 파일에 락 걸기 = 326 7.12. 출력을 flush하기 = 330 7.13. 블로킹 없이 다수의 파일 핸들로부터 읽어들이기 = 333 7.14. Non-Blocking I/O 수행하기 = 335 7.15. 읽어들일 바이트 수를 결정하기 = 337 7.16. 변수에 파일 핸들 저장하기 = 338 7.17. 출력 파일 핸들 Open을 캐싱하기 = 341 7.18. 다수의 파일 핸들로동시에 출력하기 = 343 7.19. 숫자를 이용하여 파일 디스크립터를 열고 닫기 = 344 7.20. 파일 핸들 복사하기 = 346 7.21. 프로그램 : netlock = 348 7.22. 프로그램 : lockarea = 351 8장. 파일 컨텐츠 8.0. 개요 = 359 8.1. 라인을 붙여서 읽어들이기 = 364 8.2. 파일 내의 라인(또는 단락이나 레코드) 개수 세기 = 366 8.3. 파일 내의 모든 단어 처리하기 = 367 8.4. 파일의 라인이나 단락을 역순으로 읽어들이기 = 369 8.5. 계속 커지는 파일을 처리하기 = 370 8.6. 파일에서 무작위로 임의의 라인을 추출하기 = 372 8.7. 모든 라인들의 순서를 무작위로 변경하기 = 374 8.8. 파일에서 특정 라인을 읽어들이기 = 375 8.9. 가변 길이 텍스트 필드 처리하기 = 378 8.10. 파일의 마지막 라인 제거하기 = 380 8.11. 바이너리 파일 처리하기 = 381 8.12. 랜덤 액세스 I/O 활용하기 = 383 8.13. 랜덤 액세스 파일 수정하기 = 384 8.14. 바이너리 파일로부터 문자열을 읽어들이기 = 385 8.15. 고정 길이 레코드 읽어들이기 = 387 8.16. 설정 파일 읽어들이기 = 389 8.17. 임의의 파일이 신뢰할 수 있는지를 테스트 = 392 8.18. 프로그램 : tailwtmp = 394 8.19. 프로그램 : tctee = 395 8.20. 프로그램 : laston = 397 9장. 디렉토리 9.0. 개요 = 399 9.1. 타임스탬프 조회 및 수정하기 = 406 9.2. 파일 삭제하기 = 407 9.3. 파일을 복사하거나 이동시키기 = 408 9.4. 동일한 파일에 대한 두 개의 이름을 식별하기 = 410 9.5. 디렉토리에 있는 모든 파일들을 처리하기 = 411 9.6. 패턴과 매치하는 파일명들의 목록을 구하기 = 413 9.7. 디렉토리 내에 있는 모든 파일들을 재귀적으로 처리하기 = 416 9.8. 디렉토리 및 관련 자료 삭제하기 = 418 9.9. 파일명 고치기 = 420 9.10 임의의파일명을 요소별로 분리하기 = 422 9.11. 프로그램 : symirror = 424 9.12 프로그램 : lst = 425 10장. 서브루틴 10.0. 개요 = 429 10.1. 서브루틴 인수 액세스하기 = 430 10.2. 함수 내에서 지역변수 생성하기 = 433 10.3. 지역변수의 값을 유지하기 = 435 10.4. 현재 실행중인 함수명을 조사하기 = 436 10.5. 배열 및 해시를 참조 형태로 전달하기 = 438 10.6. 반환 형식을 조사하기 = 439 10.7. 인수에 이름을 부여하여 전달하기 = 441 10.8. 반환값의 일부를 생략하기 = 442 10.9. 하나 이상의 배열 또는 해시를 반환하기 = 443 10.10. 실패 값을 반환하기 = 444 10.11. 함수의 원형을 이용하기 = 445 10.12. 예외 처리하기 = 448 10.13. 전역변수 내용을 저장하기 = 450 10.14. 함수를 재정의하기 = 454 10.15. AUTOLOAD를 이용하여 정의되지 않은 함수 호출 처리하기 = 457 10.16. 서브루틴 포함시키기 = 458 10.17. 프로그램 : 메일 정렬하기 = 459 11장. 참조와 레코드 11.0. 개요 = 463 11.1. 배열에 참조 적용하기 = 470 11.2. 배열에 대한 해시 생성하기 = 472 11.3. 해시에 대한 참조 구하기 = 474 11.4. 함수에 대한 참도 구하기 = 475 11.5. 스케일러 형식에 대한 참조 구하기 = 478 11.6. 스케일러 참조에 대한 배열 생성하기 = 480 11.7. 객체 대신 영역을 활용하기 = 482 11.8. 메쏘드에 대한 참조를 생성하기 = 484 11.9. 레코드 구축하기 = 485 11.10. 해시 레코드를 텍스트 파일에서 읽고 쓰기 = 488 11.11. 자료구조 출력하기 = 489 11.12. 자료구조 복사하기 = 491 11.13. 자료구조를 디스크에 저장하기 = 493 11.14. 자료구조를 투명하게 유지하기 = 495 11.15. 프로그램 : 바이너리 트릭 = 496 12장. 패키지, 라이브러리 및 모듈 12.0. 개요 = 501 12.1. 모듈의 인터페이스 정의하기 = 507 12.2. require 또는 use 구문에서 에러 처리하기 = 510 12.3. use 구문을 실행 시간까지 지연시키기 = 512 12.4. 변수를 모듈에 대해 private 처리하기 = 515 12.5. 호출한 곳의 패키지 알아내기 = 518 12.6. 모듈 클린업 자동화하기 = 520 12.7. 고유한 모듈 디렉토리 관리하기 = 522 12.8. 모듈을 배포할 수 있도록 작업하기 = 525 12.9. SelfLoader를 이용하여 모듈 로딩 속도 높이기 = 527 12.10. AutoLoader를 이용하여 모듈 로딩 속도 높이기 = 529 12.11. 내장 함수 오버라이드하기 = 530 12.12. 내장 함수같이 애러 및 경고문 제공하기 = 532 12.13. 패키지를 간접적으로 참조하기 = 533 12.14. h2ph를 이용하여 C#include 파일 변환하기 = 535 12.15. C 코드로 된 모듈을 제작하기 위해 h2xs 활용하기 = 539 12.16. Pod를 이용하여 모듈을 문서화하기 = 543 12.17. CPAN 모듈 빌드 및 설치하기 = 545 12.18. 예제 : 모듈 템플릿 = 548 12.19. 프로그램 : 설치된 모듈의 버전 및 설명 찾아내기 = 549 13장. 클래스, 객체, 타이 13.0. 개요 = 555 13.1. 객체 생성하기 = 563 13.2. 객체 파괴하기 = 565 13.3. 인스턴스 데이터 관리하기 = 567 13.4. 클래스 데이터 관리하기 = 570 13.5. 클래스를 구조체로 활용하기 = 573 13.6. 객체 복제하기 = 577 13.7. 메쏘드를 간접적으로 호출하기 = 579 13.8. 서브클래스의 소속을 결정하기 = 580 13.9. 상속 가능한 클래스 작성하기 = 582 13.10. 오버라이드된 메쏘드 액세스하기 = 584 13.11. AUTOLOAD를 이용하여 속성 메쏘드 생성하기 = 586 13.12. 데이터 상속 문제 해결하기 = 589 13.13. 원형 자료구조 처리하기 = 591 13.14. 연산자 오버라이드하기 = 594 13.15. 타이를 이용하여 특수한 변수 생성하기 = 601 14장. 데이터베이스 액세스 14.0. 개요 = 611 14.1. DBM 파일 생성하고 활용하기 = 614 14.2. DBM 파일 초기화하기 = 616 14.3. DBM 포맷 변환하기 = 618 14.4. DBM 파일 통합하기 = 619 14.5. DBM 파일에 락을 걸기 = 620 14.6. 방대한 크기의 DBM 파일을 정렬하기 = 623 14.7. 텍스트 파일을 배열처럼 다루기 = 625 14.8. DBM 파일에 복잡한 형태의 값을 저장하기 = 629 14.9. 불변하는 값으로 처리하기 = 631 14.10. DBI 및 DBD를 이용한 SQL 구문 처리하기 = 633 14.11. 예제 프로그램 : ggh - 넷스케이프 히스토리 분석기 = 636 15장. 사용자 인터페이스 15.0. 개요 = 641 15.1. 프로그램 인수를 파싱하기 = 643 15.2. 프로그램이 상호 작용적으로 실행되는지를 테스트 = 646 15.3. 화면의 내용을 모두 지우기 = 648 15.4. 터미널이나 윈도우 크기 알아내기 = 649 15.5. 텍스트 색상 변경하기 = 650 15.6. 키보드로부터 입력받기 = 652 15.7. 터미널 벨 울리기 = 653 15.8. POSIX termios 이용하기 = 655 15.9. 대기중인 입력 체크하기 = 657 15.10. 비밀번호 입력받기 = 658 15.11. 입력 편집하기 = 659 15.12. 화면 관리하기 = 661 15.13. Expect를 이용하여 다른 프로그램 제어하기 = 664 15.14. Tk를 이용하여 메뉴 생성하기 = 667 15.15. Tk를 이용하여 다이얼로그 박스 생성하기 = 670 15.16. Tk 크기 조절 이벤트에 응답하기674 15.17. 윈도유용 펄/Tk 적용시 도스 쉘 윈도우 제거하기 = 675 15.18. 프로그램 : 간단한 termcap 프로그램 = 677 15.19. 프로그램 : tkshufflepod = 679 16장. 프로세스 관리 및 통신 16.0. 개요 = 683 16.1. 프로그램의 출력을 모으기 = 686 16.2. 다른 프로그램을 실행하기 = 688 16.3. 현재 프로그램을 다른 것으로 대체하기 = 690 16.4. 다른 프로그램에 대한 읽기 및 쓰기 처리하기 = 691 16.5. 자체 출력을 필터링하기 = 694 16.6. 입력을 미리 처리하기 = 696 16.7. 프로그램에서 STDERR을 읽어들이기 = 698 16.8. 다른 프로그램의 입력 및 출력 제어하기 = 701 16.9. 다른 프로그램의 입력, 출력, 에러를 제어하기 = 703 16.10. 연관이 있는 프로세스간 통신하기 = 706 16.11. 프로세스를 명명된 파이프를 가지는 파일처럼 보이게 하기 = 712 16.12. 서로 다른 프로세스에서 변수를 공유하기 = 716 16.13. 이용 가능한 신호 목록 나열하기 = 718 16.14. 신호 전송하기 = 720 16.15. 신호 핸들러 설치하기 = 721 16.16. 신호 핸들러를 임시로 어버라이드하기 = 723 16.17. 신호 핸들러 작성하기 = 724 16.18. Ctrl-C 검출하기 = 727 16.19. 좀비 프로세스 피하기 = 728 16.20. 신호를 블록시키기 = 731 16.21. 연산 타임 아웃 = 733 16.22. 프로그램 : sigrand = 734 17장. 소켓 17.0. 개요 = 741 17.1. TCP 클라이언트 작성하기 = 744 17.2. TCP 서버 작성하기 = 747 17.3. TCP를 이용하여 통신하기 = 750 17.4. U에 클라이언트 설정하기 = 753 17.5. U에 서버 설정하기 = 756 17.6. 유닉스 도메인 소켓 설정하기 = 759 17.7. 소켓에서 상대편을 확인하기 = 760 17.8. 자신의 호스트명 및 주소 알아내기 = 762 17.9. 포크 후 소켓 닫기 = 763 17.10. 상호 작용하는 클라이언트 작성하기 = 765 17.11. 포크를 처리하는 서버 작성하기 = 767 17.12. 사전에 포크를 처리하는 서버 작성하기 = 769 17.13. 포크를 이용하지 않고 서버 작성하기 = 772 17.14. 다중 홈 서버 작성하기 = 777 17.15. 데몬 서버 작성하기 = 778 17.16. 필요할 때마다 서버를 재시작하기 = 780 17.17. 프로그램 : backsniff = 782 17.18. 프로그램 : fwdport = 783 18장. 인터넷 서비스 18.0. 개요 = 789 18.1. DNS 룩업 구현하기 = 790 18.2. FTP 클라이언트 구현하기 = 794 18.3. 메일 전송하기 = 798 18.4. Usenet 뉴스그룹 메시지 열람 및 등록하기 = 804 18.5. POP3를 이용하여 메일 열람하기 = 807 18.6. 텔넷 시뮬레이션하기 = 810 18.7. Ping을 이용한 테스트 구현하기 = 812 18.8. InterNIC 정보 검색을 위한 Whois 기능 구현하기 = 814 18.9. 예제 프로그램 : expn and vrfy = 815 19장. CGI 프로그래밍 19.0. 개요 = 819 19.1. CGI 스크립트 작성하기 = 824 19.2. 에러 메시지 및 처리 방식 변경하기 = 827 19.3. 500 Server Error 정정하기 = 828 19.4. 안전한 CGI 프로그램 작성하기 = 833 19.5. CGI 스크립트의 효율성을 높이기 = 836 19.6. 쉘 이스케이프를 사용하지 않고 커맨드를 실행하기 = 838 19.7. 목록 및 테이블을 HTML롤 표현하기 = 841 19.8. 다른 위치로 이동하기 = 844 19.9. HTTP 메시지 디버깅하기 = 847 19.10. 쿠키 관리하기 = 849 19.11. 유기적인 폼 필도 생성하기 = 852 19.12. 다중 CGI 스크립트 작성하기 = 853 19.13. 폼의 내용을 파일로 저장하거나 메일로 전송하기 = 856 19.14. 프로그램 : chemiserie = 858 20장. 웹 오토메이션 20.0. 개요 = 865 20.1. 펄 스크립트에서 URL을 이용하여 정보 얻어오기 = 867 20.2. 코드 내에서 폼 처리하기 = 869 20.3. HTML 파일에서 URL 추출하기 = 871 20.4. ASCII를 HTML로 변환하기 = 873 20.5. HTML를 ASCII로 변환하기 = 875 20.6. HTML 태그를 추출 제거하기 = 876 20.7. 링크 오류 찾아내기 = 879 20.8. 최근 업데이트된 URL 링크 찾기 = 880 20.9. HTML 템플릿 생성하기 = 882 20.10. 웹페이지 미러링하기 = 886 20.11. 웹 로봇 구현하기 = 887 20.12. 웹 서버 로그 파일 파싱하기 = 888 20.13. 웹서버 로그 분석, 처리하기 = 890 20.14. 예제 프로그램 : htmlsub = 893 20.15. 예제 프로그램 : hrefsub = 895 찾아보기 = 898
