본문 바로가기

Script/Perl

07. Hash

 
맵에 해당하는 변수로 키와 값을 가지고 my % 를 사용해 선언한다.
 
선언하는 방식은 배열과 유사한데 배열이 []  를 사용하여 값을 얻는 반면 해시는 {} 를 사용해 값을 얻는다.
 
또한 해시는 배열로 변환할 수 있는데 이 경우 해시의 키 값과 원소값이 번갈아 나열되서 해시의 두배 크기가 된다.
 
반대로 배열도 해시로 바로 변환 할 수 있다.
 
my %scientists = (
       "Newton"   => "Isaac" ,
       "Einstein" => "Albert" ,
       "Darwin"   => "Charles"
);
 
print $scientists {"Newton"}; # "Isaac"
print $scientists {"Einstein"}; # "Albert"
print $scientists {"Darwin"}; # "Charles"
print $scientists {"Dyson"}; # 경고를 발생하며, undef 를 반환한다. 출력은 ""이다.
 
my @scientists = %scientists ;
print "@scientists"; #Darwin Charles Newton Isaac Einstein Albert
 
 
 
Operation
 
아래와 같은 연산이 자주 사용된다.
 
my %h = ( k1 => "val1" , k2 => "val2");
 
my $val = $h {k1 };
 
my @a = %h ;
 
%h = @a;
 
foreach my $k ( keys(%h)) { print $k ; }
 
foreach my $v ( values(%h)) { print $v ; }
 
while ((my $k , my $v) = each(%h) ) {
       print $v ;
       print $k ;
}
 
delete $h {k1 };
 
if ( exists $h {k1 } ) {print 'test' ;}
 
 
 

'Script > Perl' 카테고리의 다른 글

09. string  (0) 2020.01.21
08. List Data  (0) 2020.01.21
06. Array Function  (0) 2020.01.21
05.  Scalar Data  (0) 2020.01.21
04. Variable  (0) 2020.01.21