>> Edit article
이름
제목
패스워드
5. 흐름의 조절 많은 CGI는 대부분 선형적인 프로그램 구조를 가진다. 하지만, Perl은 많은 제어 명령어를 포함, 여러 조건을 제어 할 수 있으므로 제어 언어라 불린다. 5.1 if 와 while Perl 의 if 문은 C의 if 문과 비슷하다. ☞간단한 예 [root@chongnux perl]# cat if#!/usr/bin/perl$count = 0 ;$sum = 0; while(1){ $sum += $count; $count += 5; if($count >51){exit(0);} if(($count% 5)== 0){ print "$count 는 5의 배수 입니다.";}} [root@chongnux perl]# chmod +x if[root@chongnux perl]# ./if5 는 5의 배수 입니다.10 는 5의 배수 입니다.15 는 5의 배수 입니다.20 는 5의 배수 입니다.25 는 5의 배수 입니다.30 는 5의 배수 입니다.35 는 5의 배수 입니다.40 는 5의 배수 입니다.45 는 5의 배수 입니다.50 는 5의 배수 입니다.☞예제로 배우기#!/usr/bin/perl @city = ("A_city", "B_city","C_city"); # 배열 while(1) # 무한 반복 명령.. 참이면 계속 실행이 되것지요..{print "Enter_one_City_(A_,_B_,_C_,Q_is_to_quit)_:_";new_enter:$choice = <STDIN>; # 표준 입력 <STDIN> 이며 입력 받은 것 # 은 $choice 에 입력됨..chop $choice ; # 개행 문자를 삭제함...왜 반드시 개행 문자 # 를 지워서 입력 시켜야 함. # chop는 마지막 문제를 제거하는데 쓰이는 명령어. if($choice eq "A" || $choice eq "a") { print "$city[0] is a wonderful country.";}elsif($choice eq "B" || $choice eq "b") { print "$city[1] is big.";}elsif($choide eq "C" || $choice eq "c") { print "$city[2],The City of God, is heaven.";}elsif($chioce eq "Q" || $choice eq "q") { exit(0);}else { print "You enter a valid word. Enter new word: " ; goto new enter;}} [root@chongnux perl]# chmod +x Jogun[root@chongnux perl]# ./Jogun Enter one City (A , B , C ,Q is to quit) : a A_city is a wonderful country. Enter one City (A , B , C ,Q is to quit) : b B_city is big. Enter one City (A , B , C ,Q is to quit) : c C_city,The City of God,is heaven. Enter one City (A , B , C ,Q is to quit) : d You enter a valid word. Enter new word: a A_city is a wonderful country. Enter one City (A , B , C ,Q is to quit) : q[root@chongnux perl]# C 언어와 많이 유사하는 것을 느끼실 겁니다. ☞ while에 관한 이야기 조건이 참이면 계속해서 반복을 하다가 거짓이 되면 루프를 빠져 나갑니다. 위의 예제를 이용 주소록도 가능하지 않을까 하는 생각 이 듭니다. 파일 입출력만 된다면 말이지요... 후후 .. 다음은 바로 라인을 읽어서 조건을 판단하는 예제입니다. #!/usr/bin/perl while($stdin = <STDIN>){ print $stdin;}혹은 #!/usr/bin/perlwhile(<STDIN>){ print $_;}은 같은 역할을 한다. 즉 에코의 역할을 한다. perl 에서는 표준입력에서 읽은 것은 $_로 값을 할당 할 수 있다. 그리고 next ,last 키워드를 가지고 있어서 루프를 겉너 뛰거나 그 루프를 종료 할 수 있다. 다음은 간단한 모양 출력 스크립트이다. [root@chongnux perl]# vi mountain#!/usr/bin/perl print "Enter number : ";$input = <STDIN>;chop $input;print "";{ for($num1 = 1 ;$num1 < $input+1 ;$num1++) { for($num2 = 1;$num2 < $num1+1;$num2++) { print "*"; } print ""; } for($num1 = $input ;$num1 > 0;$num1--) { for($num2 = $num1;$num2>0;$num2--) { print "*"; } print ""; }}[root@chongnux perl]#chmod +x mountain[root@chongnux perl]# ./mountainEnter number : 10 ************************************************************************************************************** ☞ last & nextwhile(1){ $num ++; if($num ==100) {next;} #$num 이 100이면 반복을 점프한다. if($num >1000) {last;} #$num 이 1000이면 루프를 종료한다. print "$num"; #번호 하나씩 찍끼...}내일은 더 잼있는 거 도전해볼 생각유....근데 난 언제 스크리트 멋찌게 짜나..
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved