Perl은 텍스트 처리나 간단한 스크립트 작성에 유용한 프로그래밍 언어로, 다양한 제어 구조를 통해 코드의 흐름을 제어할 수 있는 구조입니다. 이번 글에서는 Perl의 주요 제어 구조에 대해 살펴보고, 실행 가능한 예제를 다뤄보도록 하겠습니다.

Perl 프로그래밍 제어 구조
조건문 (Conditional Statements)
조건문은 프로그램의 흐름을 특정 조건에 따라 나누는 역할을 합니다. 가장 많이 사용되는 조건문으로는 if
, elsif
, else
가 있으며, 이는 특정 조건을 만족할 때만 코드 블록을 실행하게 해 줍니다.
if, elsif, else
if
는 조건이 참일 때 실행되는 블록을 의미합니다. 만약 여러 조건을 평가해야 할 경우, elsif
나 else
를 사용할 수 있습니다.
my $age = 20;
if ($age < 18) {
print "미성년자입니다.\n";
} elsif ($age < 65) {
print "성인입니다.\n";
} else {
print "노년층입니다.\n";
}
- 위 코드는 나이에 따라 다른 메시지를 출력합니다.
if ($age < 18)
조건이 거짓일 때는elsif ($age < 65)
로 넘어가고, 둘 다 거짓일 경우else
가 실행됩니다.
unless
unless
는 if
의 반대 개념으로, 조건이 거짓일 때 블록을 실행합니다. 부정적인 조건을 다룰 때 유용합니다.
my $is_raining = 0;
unless ($is_raining) {
print "오늘은 비가 오지 않습니다.\n";
}
- 위 코드에서
is_raining
값이 0(거짓)이므로, unless 블록 안의 내용이 실행되어 "오늘은 비가 오지 않습니다."가 출력됩니다.
반복문 (Loop Statements)
반복문은 특정 조건이 참인 동안 코드 블록을 반복적으로 실행하는 구조입니다. Perl에서는 for
, foreach
, while
, until
등의 반복문을 사용할 수 있습니다.
for 루프
for
루프는 반복 횟수가 명확한 경우 사용됩니다. 초기값, 조건, 증감을 지정하여 반복을 제어합니다.
for (my $i = 0; $i < 5; $i++) {
print "i의 값은: $i\n";
}
- 이 코드는
$i
가 0부터 시작해 5보다 작을 때까지 증가하며 반복됩니다. - 총 5번 실행되며, 각 반복마다
i의 값은: 0
,i의 값은: 1
등으로 출력됩니다.
foreach 루프
foreach
는 리스트나 배열의 각 요소에 대해 반복하는 루프입니다. 배열의 모든 요소에 대해 동일한 작업을 할 때 매우 유용합니다.
my @colors = ("red", "green", "blue");
foreach my $color (@colors) {
print "색상: $color\n";
}
- 위 코드는 배열
@colors
의 각 요소(red
,green
,blue
)를 반복하며 출력합니다.
while 루프
while
루프는 조건이 참인 동안 계속해서 반복하는 구조입니다. 조건이 거짓이 되면 반복을 종료합니다.
my $count = 0;
while ($count < 3) {
print "현재 카운트: $count\n";
$count++;
}
- 이 코드는
$count
가 3보다 작을 때까지 반복하며, 각 반복마다 값을 출력하고$count
를 1씩 증가시킵니다.
until 루프
until
은 while
의 반대 개념으로, 조건이 거짓인 동안 반복합니다. 즉, 조건이 참이 되면 반복을 종료합니다.
my $temperature = 25;
until ($temperature > 30) {
print "현재 온도: $temperature\n";
$temperature++;
}
- 위 코드는
$temperature
가 30을 초과할 때까지 온도를 1씩 증가시키며 값을 출력합니다.
반복 제어 키워드
반복문에서는 last
, next
, redo
와 같은 키워드를 사용하여 반복 흐름을 더욱 세밀하게 제어할 수 있습니다.
last
last
는 반복문을 즉시 종료합니다. 자바나 C 언어의 break
와 유사한 기능입니다.
for (my $i = 0; $i < 10; $i++) {
if ($i == 5) {
last;
}
print "i의 값: $i\n";
}
- 이 코드는
$i
가 5에 도달하면 반복을 종료합니다. - 따라서
i의 값
이 0부터 4까지만 출력됩니다.
next
next
는 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다. 자바나 C 언어의 continue
와 비슷한 개념입니다.
for (my $i = 0; $i < 5; $i++) {
if ($i == 2) {
next;
}
print "i의 값: $i\n";
}
$i
가 2일 때 출력하지 않고 건너뜁니다.
따라서 0, 1, 3, 4가 출력됩니다.
redo
redo
는 조건을 재평가하지 않고 현재 반복을 다시 시작하게 합니다. 이 기능은 루프의 특정 부분을 반복하고자 할 때 유용합니다.
my $i = 0;
while ($i < 5) {
$i++;
if ($i == 3) {
redo;
}
print "i의 값: $i\n";
}
$i
가 3일 때redo
를 통해 다시 그 반복을 시작합니다.$i
가 증가하고 나서 바로 반복을 다시 시작하므로$i = 3
일 때는 그 값을 출력하지 않고 다음으로 넘어갑니다.
'프로그래밍 언어 > Perl' 카테고리의 다른 글
Perl 입출력 기본부터 활용까지 파일 모드와 예제 코드 - Perl #6 (0) | 2024.11.26 |
---|---|
Perl 프로그래밍 문자열 처리 및 정규 표현식 - Perl #5 (0) | 2024.11.25 |
Perl 데이터 구조 배열, 리스트와 해시 활용 방법 - Perl #4 (0) | 2024.11.24 |
Perl 프로그래밍, Hello World!부터 데이터 타입까지 - Perl #2 (0) | 2024.11.22 |
Perl 프로그래밍 언어에 대해 알아보자. 개요부터 설치까지 - Perl #1 (0) | 2024.11.21 |