8 번째 수정본
(8 번째 수정본부터 8 번째 수정본까지의 변경사항)
(소소한 수정, 다른 사용자에 의한 수정)
(두 수정본의 내용이 동일하거나, 수정본을 비교할 수 없음.)
-  
 - 1. for 순환문
 
-  
 - 2. foreach 순환문
 
-  
 - 3. while 순환문
 
-  
 - 4. until 순환문
 
-  
 - 5. 순환문 빠져나가기 - next, last, redo
 
-  
 - 6. do { BLOCK }
 
-  
 
1. for 순환문
for (초기화; 조건; 명령 후 취할 행동) {
  명령;
}
또는
for ( 1..100 ) {
  명령;
}
변수가 생략된 경우
for ( 1..10, " hello ", "world ", "again\n" ) {    
  print;                                           
}
2. foreach 순환문
(for 로도 동일하게 쓸 수 있음. for each ... 라는 의미를 좀 더 명확히 드러낸 뿐)
foreach $elem ( 0..$#myArray )
{
  print $myArray[$elem];
}
foreach ( 0..$#myArray )
{
  print $myArray[$_];   
}
foreach $aLine (<fileHandler>) {
  print $aLine;
}
foreach 뒤에 있는 제어변수는 리스트의 요소의 alias이다. 그 변수의 값을 바꾸면 리스트의 원소가 바뀐다. 또한 제어변수는 foreach 루프 내에서 렉시컬 스코프가 적용되며 루프를 빠져나간 후의 그 변수의 값은 루프 전의 값이 됨에 유의
3. while 순환문
while ( 조건 ) {
  명령; 
}
do {
  명령; 
} while ( 조건 );
4. until 순환문
until ( 조건 ) {
  명령; 
}
do {
  명령; 
} until ( 조건 );
5. 순환문 빠져나가기 - next, last, redo
-  next - C 의 continue
 -  last - C 의 break
 -  redo - next 와 유사하나, "블럭 실행 후 취할 행동" 부분을 실행하지 않는다
 
6. do { BLOCK }
-  do { BLOCK } 형태는 블럭 안의 명령들 중 마지막 명령의 값을 반환함
 
-  do { BLOCK } while ( 조건 )
 -  do { BLOCK } until ( 조건 )
 -  위 두 가지는 BLOCK 을 한 번 실행한 후, 조건에 따라 반복을 할 것인지 결정한다.
-  그런데... 이 형태는 whlie이나 until과 달리 루프로 간주되지 않아서 next,last,redo를 쓸 수 없다.
 -  next를 대신할 수 있는 방법은 BLOCK을 다시 중괄호로 둘러싸는 것. 중괄호쌍은 그 자체가 "한 번 실행되는 루프"로 간주되기 때문에 next 등을 쓸 수 있다. 따라서 last를 만나면 중괄호를 빠져나가고, 이후 조건문을 검사한 후 다시 do { } 안으로 진입하거나 나가거나 할 것이다.
 -  last의 효과를 낼 수 있는 방법은 모르겠음.
 
 
컴퓨터분류