Monday, December 24, 2012

Perl 에서 hash table (dictionary) 사용하기

간단 예 (사전)
 my %dic = (  
      'dave' => 'megadeth',    
      'lars' => 'metalica',    
      'kerry'=> 'slayer');    
 print("$dic{lars}\n");    
 print("$dic{dave}\n");    
 print("$dic{kerry}\n");    
   
 $dic{scott} = 'anthrax';  
   
 print("$dic{scott}\n");    
   
결과:
metalica
megadeth
slayer
anthrax

Hash of Arrays 쓰는 법
 my %dic = ('megadeth' => ['Rust', 'Youth', 'Risk'],  
   'metallica' => ['Kill', 'Puppets', 'Load', 'Reload'],  
   'slayer'=> ['Reign', 'South']);   
   
 my $s = join(", ", @{$dic{metallica}});  
 print("$s\n");  
결과 : Kill, Puppets, Load, Reload

다음은 array 의 복사본을 hash 의 element 로 넣음
 my %dic = ('megadeth' => ['Rust', 'Youth', 'Risk'],   
   'metallica' => ['Kill', 'Puppets', 'Load', 'Reload']);    
     
 my @a = ('Reign', 'South');  
 @{$dic{slayer}} = @a;  
   
 printHash(\%dic);  
   
 sub printHash  
 {  
      my $pHash = shift;  
      use Data::Dumper;   
      print Dumper %$pHash;  
      print "\n";  
 }  

복잡한 data structure 를 보는 법
 my %dic = ('megadeth' => ['Rust', 'Youth', 'Risk'],  
   'metallica' => ['Kill', 'Puppets', 'Load', 'Reload'],  
   'slayer'=> ['Reign', 'South']);   
   
 use Data::Dumper;  
 print Dumper %dic;  
결과 : 다음과 같이 잘 정리되어 나온다.
 $VAR1 = 'metallica';  
 $VAR2 = [  
      'Kill',  
      'Puppets',  
      'Load',  
      'Reload'  
     ];  
 $VAR3 = 'slayer';  
 $VAR4 = [  
      'Reign',  
      'South'  
     ];  
 $VAR5 = 'megadeth';  
 $VAR6 = [  
      'Rust',  
      'Youth',  
      'Risk'  
     ];  
레퍼런스 :
Perl Examples: Array of Arrays, Hash of Arrays, Hash of Hashes, Stack → 설명 잘되어 있음
Associative Arrays

No comments:

Post a Comment