# 조건문 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."; } } ```