Perl File Handling FileHandle : Name for I/O connection

Slides:



Advertisements
Similar presentations
Python Essential 세미나 1 CGI 프로그램 작성법 발표자 : 박승기 ( 수 )
Advertisements

Term Project Hints Topics Keep-alive CGI Multi-thread Multi-process Event-based.
Tcl/Tk 민 인학 한국 Tcl/Tk 커뮤니티.
Introduction to Django
DB 프로그래밍 학기.
DB 프로그래밍 학기.
PHP programming 2000년 11월 13일 데이터베이스 연구실 김호숙.
2002/3/20 HTML 2002/3/20
김 상 국, 김 기 훈 한남대학교 컴퓨터공학과 데이터베이스 실험실
HTML과 CGI 프로그래밍 PHP 웹 프로그래밍 (PHP Web Programming) 문양세
4. 데이터 기능 유형.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
11장 방명록 한빛미디어(주).
EndNote 이용법 - 레퍼런스 관리 프로그램 -.
10장. 에러 처리 제10장.
Ruby 프로그래밍 1 문자열 입출력 제어구조 looping 함수 정의
이 름: 정홍도 (과장) 팀 명: 개발사업팀 일 자:
김승겸 한남대학교 컴퓨터공학과 인공지능 실험실
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
Power Java 제4장 자바 프로그래밍 기초.
제 15 장 파일 업로드와 메일 보내기 학기 인터넷비즈니스과 강 환수 교수.
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
2. PHP 프로그래밍 웹 브라우저로 데이터 전송 주석 작성하기 변수/상수 문자열/숫자형 HTML 폼 만들기
MySQL 기본 사용법.
Ch2-2. VHDL Basic VHDL lexical element VHDL description
파일 및 디렉토리(1) 여러 함수들 chdir(“category”) || die “cannot cd to temp”;
IS lab. 김건영 Awk, Posting list IS lab. 김건영
5. JSP의 내장객체1.
DataStage 운영자 지침서 Operator’s Guide
숭실대학교 마이닝연구실 김완섭 2009년 2월 8일 아이디어  - 상관분석에 대한 연구
Geek-OS Project 정영진
EBSCOhost 이용 안내 - Academic Search Premier (학문 전분야 해외저널 Full Text)
4. JSP의 스크립트 요소 Script 요소의 이해 선언문(Declaration) Scirptlet 표현식 주석
12 데이터베이스 사용하기.
5장. JSP 페이지의 스크립트 요소 이 장에서 배울 내용 : JSP페이지를 구성하는 구성요소중 하나인 스크립트요소를 학습하는 장으로 JSP페이지의 스크립트의 3가지 요소인 선언문(Declaration), 스크립트릿(Scriptlet), 표현식(Expression)에 대해.
BIZSIREN 실명확인서비스 개발 가이드 서울신용평가정보㈜ 신용조회부 (TEL , FAX )
adopted from KNK C Programming : A Modern Approach
HTML.
Chapter11 웹 스토리지 & 웹 데이터베이스
CGI (Common Gateway Interface)
ER-Win 4.0 Database Modeling Ⅰ. Logical Design
인터넷응용프로그래밍 Atom(개발 환경).
상품등록 방식 비교 년 4월 23일 (주)에이치케이넷츠.
PHP 개요 및 설치 Yang-Sae Moon Department of Computer Science
표현언어와 커스텀태그 표현 언어의 개념을 이해한다. JSP1.2 커스텀 태그 개발 방법을 익힌다.
Chapter13 파일 접근 & 오프라인 접근 HTML5 Programming.
EBSCOhost 데이터베이스 이용매뉴얼
CGI (Common Gateway Interface)
2011 EBSCOhost 이용매뉴얼.
Cyber Shopping Mall 구축 - CD New - 안소연,박지윤,박종봉,정영은.
[INA470] Java Programming Youn-Hee Han
Regular Expression 1 Powerful pattern matching with regular expression to a string while () { if ( /ab*c/ ) { print $_; } } substitute operator s/abc*c/def/;
McGraw-Hill Technology Education
editing program files with vi 기본적인 Linux commands
ASP 수행 화면(1).
6장 콘 셸 뇌를 자극하는 Solaris Bible.
루프와 카운트 Looping and counting
2016년 ‘표준LC장기활동 축하금’ 현장 메일알림 서비스
4. 어휘 분석(Lexical analysis)
Regular Expression 1 Powerful pattern matching with regular expression to a string while () { if ( /ab*c/ ) { print $_; } } substitute operator s/abc*c/def/;
Command line tools 한국어 정보의 전산 처리
세션 (Session) Yang-Sae Moon Department of Computer Science
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
For regex_compile function in grep.c
데이터 베이스의 내부 구조.
Stored program 장종원
房思琪的初恋乐园 ‘팡쓰치’로 보는 문학의 힘 정은비.
C.
Web & Internet [10] 입문 – input 태그
컴퓨터 프로그래밍 및 실습 – 5주차 내장함수 / 외장함수 (1)
Presentation transcript:

Perl File Handling FileHandle : Name for I/O connection STDIN, STDOUT, STDERR are given Other Files Open(FILEHANDLE, “somename”); FILEHANDLE is a name being used in Perl “somename” is a file name in OS Open(OUT, “>outfile”); Open(LOGFILE, “>>mylogfile”); Close(LOGFILE);

Input/Output to File open (FIL , “some-file”); while ( $_ = <FIL> ) { chop; print STDOUT “some-file has $_ !\n”; } close(FIL);

Flat File Database A text file database Each line of the file is a new record in DB The fields are separated by pipe symbol(|) guestbook.dat Sunghun Park|sunghun.park@mail.utexas.edu|Testing Joe Smith|jsmith@mail.utexas.edu|Hello Everybody

guestbrowse.cgi #!/usr/local/bin/perl require 'cgi-lib.pl'; # Include library + use it print "Content-type: text/html\n\n"; print "<HTML><h1>The Contents of Guestbook</h1>"; print "<TABLE BORDER=1>\n"; print "<TR><TD>Name of Guest</TD><TD>E-Mail</TD><TD>Comments from Guest</TD>\n"; open(GUESTBOOK,"guestbook.dat") || die "\n<H1>Can't Open Guestbook file!</H1>"; while (<GUESTBOOK>) { chop($_); ($name, $email, $comment) = split(/\|/, $_); print "<TR><TD> $name </TD><TD> <A HREF=\"mailto:$email\">$email </A></TD><TD>$comment </TD></TR>\n"; } print "</TABLE>\n"; close(GUESTBOOK);

Split Function Split takes a regular expression and a string Split returns a list of values $line = “C:\\;;C:\\Windows\\;”; @fields = split(/;/, $line); now $fields is (“C:\”, “”, “C:\Windows”) @fields 는 첨자형 변수 전체를 지칭 $fields[0], $fields[1], $fields[2]는 각각의 첨자형변수

Perl 첨자형 변수(2가지) 단순한 변수는 $x, $y $days[28] 는 첨자형 변수 $#days 는 @days의 마지막 첨자 값을 표시함 $days[0], $days[1], $days[2], ….$days[$#days] $days{‘Feb’} 는 associate array를 표시 전체는 %days로 표시한다 (키값1, 값1, 키값2, 값2, ….) $days{‘Jan’} 등으로 사용한다 VB의 ReQuest.QueryString(“name”)등의 기능은 여기서 왔다 foreach $i (keys %ENV) print “$i = $ENV{$i}”;

guestentry.htm <HTML> …. <HR> <FORM ACTION="http://mis2.myngji.ac.kr/cgi-bin/cgiwrap/shpark/guestentry.cgi” METHOD=POST> <CENTER> <TABLE WIDTH=50%> <TR><TD ALIGN=RIGHT><B>Name:</B></TD><TD><INPUT TYPE=text NAME=name></TD></TR> <TR><TD ALIGN=RIGHT><B>E-Mail Address:</B></TD><TD><INPUT TYPE=text NAME=email></TD></TR> <TR><TD ALIGN=RIGHT><B>Short Comment:</B></TD><TD><INPUT TYPE=text NAME=comment></TD></TR> <TR><TD></TD><TD><INPUT TYPE=submit VALUE="Submit To Guestbook"></TD></TR> </TABLE> </CENTER> </FORM> …</HTML>

guestentry.cgi #!/usr/local/bin/perl require "cgi-lib.pl"; # Include library + use it &ReadParse(*input); print STDOUT "Content-type: text/html\n\n"; print STDOUT "<HTML>\n"; open(GUESTBOOK,">>guestbook.dat") || die "<H2>Can't Open Guestbook file!</H2>"; if ( $input{'name'} NE "" ) { print GUESTBOOK "$input{'name'}|$input{'email'}|$input{comment}\n"; print STDOUT "<center>$input{'name'}<p>\n"; print STDOUT "$input{'email'}<p>\n"; print STDOUT "$input{'comment'}<p>\n"; print STDOUT "Added to the Guestbook<p>\n"; } else { print STDOUT "<H2>Please enter at least your name!!</h2>\n"; close(GUESTBOOK);

cgi-lib.pl Old Perl module(library) for handling CGI stuffs New version is CGI.pm After calling &ReadParse(*input); &… 는 부프로그램 …를 호출하는 방식 *input 은 첨자형 변수 %input을 인수로 넘겨줌 $ENV{…} 환경변수들이 제공된다 “REQUEST_METHOD”, “CONTENT_LENGTH” $ENV{‘REQUEST_METHOD’} $input{…} Form변수들이 제공된다 “name”, “email” 등은 Form에서 사용한 필드명들 $input{‘name’}, $input{‘email’}등은 사용자가 입력한 값을 저장하고 있다

Searching in Perl I Powerful pattern matching with regular expression to a string More general than wild card file or dir name while (<>) { if ( /ab*c/ ) { print $_; } } substitue operator s/abc*c/def/;

Searching in Perl II If pattern to search is not in $_, use =~ $a = “hello world”; $a =~ /^he/; $a =~ /$b/i

guestsearch.cgi #!/usr/local/bin/perl require 'cgi-lib.pl';# Include library + use it &ReadParse(*input); print "Content-type: text/html\n\n"; print "<HTML><h1>The Messages from Guest $input{'name'}</h1>"; print "<TABLE BORDER=1>\n"; print "<TR><TD>Name of Guest</TD><TD>E-Mail</TD><TD>Comments from Guest</TD>\n"; open(GUESTBOOK,"guestbook.dat") || die "\n<H1>Can't Open Guestbook file!</H1>"; while (<GUESTBOOK>) { chop($_); ($name, $email, $comment) = split(/\|/, $_); if ( $name =~ /$input{'name'}/i ) { print "<TR><TD> $name </TD><TD> <A HREF=\"mailto:$email\">$email </A></TD><TD>$comment </TD></TR>\n"; } print "</TABLE>\n"; close(GUESTBOOK);