if .. elsif .. else ...
elsif 철자가 특별한 거 외엔 별다를 게 없다.
my $word = "antidisestablishmentarianism" ;
my $strlen = length $word ;
if($strlen >= 15 ) {
print "'", $word , "' is a very long word";
} elsif( 10 <= $strlen && $ strlen < 15) {
print "'", $word , "' is a medium-length word";
} else {
print "'", $word , "' is a a short word";
}
|
명령문을 짧게 쓸 때 많이 쓰는 "명령문 if 조건" 형식도 있다.
my $word = "antidisestablishmentarianism" ;
my $strlen = length $word ;
print "'", $word , "' is actually enormous" if $strlen >= 20;
|
unless .. else ...
보통 잘 사용하지 않지만 짧은 구문을 쓸 때는 유용하다.
my $temperature = 16;
print "Oh no it's too cold" unless $temperature > 15;
|
삼항 연산자
c 와 동일하다
my $gain = 48;
print "You gained ". $gain , " ".
($gain== 1 ? "experience point" : "experience points"), "!";
|
while
my $i = 0;
my @array = ( 1,2 ,3, 4,5 );
while($i < scalar @array ) {
print $i , ": ", $array [$ i];
$i ++;
}
|
my $i = 0;
my @array = ( 1,2 ,3, 4,5 );
do {
print $i , ": ", $array [$ i];
$i ++;
} while ( $i < scalar @array );
|
until
until 문은 거짓이 실행되고 참일때 빠져나간다.
my $i = 0;
my @array = ( 1,2 ,3, 4,5 );
until($i >= scalar @array ) {
print $i , ": ", $array [$ i];
$i ++;
}
|
my $i = 0;
my @array = ( 1,2 ,3, 4,5 );
do {
print $i , ": ", $array [$ i];
$i ++;
} until ( $i >= scalar @array );
|
for
c 스타일의 for 이 가능하다.
my @array = ( 1,2 ,3, 4,5 );
for(my $i = 0; $i < scalar @array ; $ i++) {
print $i , ": ", $array [$ i];
}
|
foreach
my @array = ( 1,2 ,3, 4,5 );
foreach my $string ( @array ) {
print $string ;
}
|
my @array = ( 1,2 ,3, 4,5 );
foreach ( @array ) {
print $_ ;
}
|
next, last
continue, break 에 해당한다.
부가적으로 라벨을 붙일 수 있는데 아래 코드는 CANDIDATE 로 올라가서 이를 다시 수행하라 라는 의미가 된다.
CANDIDATE: for my $candidate ( 2 .. 100 ) {
for my $divisor ( 2 .. sqrt $candidate ) {
next CANDIDATE if $candidate % $divisor == 0;
}
print $candidate ." is prime\n";
}
|
'Script > Perl' 카테고리의 다른 글
12. Reference (0) | 2020.01.21 |
---|---|
11. Context (0) | 2020.01.21 |
09. string (0) | 2020.01.21 |
08. List Data (0) | 2020.01.21 |
07. Hash (0) | 2020.01.21 |