- 각종 제어문
- Statement
- if / unless
- while / until
- for
- foreach
Statement
- 중괄호로 둘러싸인 것
{ ... } - Statement 내의 마지막 문의 세미콜론은 생략 가능
if / unless
if (expression) {
true_expr; true_expr; true_expr;
} else {
false_expr; false_expr; false_expr;
}
- 참/거짓을 판단하기 위해서, 스칼라 구문을 문자열로 변환하여 판단함
- 참(true) / 거짓(false) 예시
- 0
- "0"으로 변환 --> 거짓
- 1-1
- 0으로 계산한 뒤, "0"으로 변환 --> 거짓
- 1
- "1"으로 변환 --> 참
- " "
- 공백문자열 --> 거짓
- "1"
- 공백이거나 "0"이 아니므로 참
- "00" <주의>
- 공백이거나 "0"이 아니므로 참
- "0.000"
- 공백이거나 "0"이 아니므로 참
- undef
- 공백문자열로 계산되므로 거짓
- unless
if ( $a < 10 )
{
stmt_1;
} else {
stmt_2;
}
< = same as = >
unless ( $a < 10 )
{
stmt_2;
} else {
stmt_1;
}
- elsif --> else if
if ( expr )
{
...
} elsif ( expr ) {
...
} else {
...
}
while / until
- while ( expr ) : expr 이 거짓이 될 때까지 반복
while ( expr )
{
...
}
stmt;
- until ( expr ) : expr 이 참일 동안
until ( expr )
{
...
}
stmt;
do {} while / until
- 조건을 맨 밑에서 테스트 할 때 사용
do {
...
} while (expr)
do {
...
} until (expr)
for
- C 또는 Java와 유사함
for ( initial_expr ; test_expr ; re-init_expr )
{
stmt;
...
}
foreach
- 값들을 리스트로 받아서, 한번에 하나씩 스칼라 변수에 할당하고, 각 할당 이후 해당 코드 블록 수행
foreach $i ( @my_list )
{
...
}
- 스칼라 변수 없이 사용할 수 있음 --> $_ 이용
- $_ 변수는 Perl 연산에서 default로 사용할 수 있음.
(예)
@my_list = (1,2,3,4,5);
foreach (reverse @my_list)
{
print;
}
# 54321 을 출력