2024-06-21

This commit is contained in:
2024-06-21 14:57:07 +09:00
parent 04caa2eb53
commit e00dd1bfbf
43 changed files with 2689 additions and 0 deletions

View File

@@ -0,0 +1,126 @@
# 조건문
PERL에는 boolean 형식의 데이터가 없으며, 숫자 0, 문자열 '0', 빈 문자열, 빈 리스트, 값이 할당되지 않은(undefined) 변수의 경우에는 거짓으로, 그 외의 경우에는 참으로 판단됩니다.
## if
실행문 뒤에 if를 쓸 수도 있습니다.
```perl
$a = 1;
print "Hello\n" if ($a == 1);
```
## if … elsif … else …
실행문이 한 줄인 경우라도 중괄호가 반드시 필요합니다.
```perl
if ($condition){
print "true\n";
} else {
print "false\n";
}
```
## unless
```perl
$a = 1;
print "Hello\n" unless ($a == 1);
```
## unless … elsif … else …
unless는 조건식이 거짓일 때 처리됩니다.
```perl
$var = -10;
unless ($var){
print "false\n";
} elsif ($var>=0) {
print "positive\n";
} else {
print "negative\n";
}
# negative
```
## 조건 연산자
```perl
$var = 10;
$value = ($var>=0) ? "Positive" : "Negative";
print "$value\n";
```
## given … when … default …
```perl
use v5.10; # given문을 사용하려면 이렇게 선언해야 합니다.
no warnings 'experimental';
$var = 2;
given ($var){
when (1) {
print "one\n";
}
when (2) {
print "two\n";
}
default {
print "many\n";
}
}
```
```perl
use v5.12;
my $var = 2;
my $value;
given ($var){
$value = 'One' when (1);
$value = 'Two' when (2);
default {
$value = 'Many';
}
}
print "$value\n";
```
```perl
use v5.12;
my $var = 'a';
my $value;
given ($var){
$value = 'Number' when /\d/; # when절에 정규표현식을 사용할 수도 있습니다.
$value = 'Character' when /[a-zA-Z]/;
default {
$value = 'Unknown';
}
}
print "$value\n";
```
## switch .. case .. else ..
switch 구문은 Switch 모듈의 일부이므로 이를 사용하려면 `use Switch;`를 선언해야합니다.
```perl
use Switch;
switch($var) {
case 1 {
print "One";
}
case "a" {
print "string a";
}
else {
print "something else.";
}
}
```