본문 바로가기

Script/Perl

10. conditional sentence

 
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