Saturday, January 19, 2013

Perl 에서 sort 하기

키와 몸무게 데이터가 있다고 할때 키로 sort 해보자.
 use strict;  
 use warnings;  
 my @a = (  
      [168, 62],  
      [170, 54],  
      [168, 60],  
      [180, 100],  
 );  
 my @b = sort byHeight(@a);  
 printDS(\@b);  
 sub byHeight  
 {  
      return ($a->[1] <=> $b->[1]);  
 }  
 sub printDS  
 {  
      my $ds = shift;  
      use Data::Dumper;   
      print Dumper @$ds;  
      print "\n";  
 }  
위의 byHeight() 는 다음과 같이 한 것과 동일하다.
 
 sub byHeight  
 {  
      if($a->[0] > $b->[0]){  
           return 1;  
      }elsif($a->[0] < $b->[0]){  
           return -1;  
      }else{  
           return 0;  
      }  
 } 
키가 같은 경우 몸무게로 sort 하게 하려면 다음과 같이 하면 된다.
 sub byHeight  
 {  
      if($a->[0] > $b->[0]){  
           return 1;  
      }elsif($a->[0] < $b->[0]){  
           return -1;  
      }else{  
           return ($a->[1] <=> $b->[1]);  
      }  
 }  
키워드 : weight

No comments:

Post a Comment