perl的array和map/hash

 

一 array

1)实例


use strict;
use warnings;

my @myarray = (123,"hello", 456, 'guy');

foreach(@myarray)
{
    
print "$_ " ;
}
print "\n";
foreach my $item (@myarray)
{
    
print "$item " ;
}
print "\n";
for(my $i = 0$i <scalar(@myarray); $i++)
{
    
print "$myarray[$i]" . " ";
}
print "\n";
for(0..($#myarray))
{
    
print "$myarray[$_]" . " ";
}
print "\n";

@myarray = (@myarray, 789);
print "@myarray\n" ;
push(@myarray,"gril");
print "@myarray\n" ;
unshift(@myarray, '000');
print "@myarray\n" ;
delete $myarray[1];
print "@myarray\n" ;

 

2)函数,如下:

3)注释:

1】使用@定义array,使用array的item时$array[n];

2】使用scalar来获得array的size;

3】$#获得最大的index,即size-1;

4】$_在for和foreach中表示当前item;

5】push/pop用来在array的最后加入和弹出item;

6】shift/unshift用来在array的前面删除和插入item;

7】split/john用来实现array和string间的转化;

8】delete可以用来删除item,例如delete $myarray[1];

 

二 map/hash

1) 实例:


use strict;
use warnings;

my %myhash = ('k1',100,'k2',200);
# my %myhash = (k1=>100,k2=>200);
print %myhash ;
print "\n";
$myhash{'k3'= 300;
$myhash{'k4'= 400;
print %myhash ;
print "\n";

foreach my $key (keys %myhash)
{
    
print $key . " indexes ".$myhash{$key}."\n";
}
foreach my $value (values %myhash)
{
    
print $value ."\n";
}
while((my $key, my $value)= each(%myhash))
{
    
print "$key indexes $value \n"
}

if(exists $myhash{'k1'}) {print "k1 is exist\n";}

delete $myhash{'k1'};
print %myhash ;
print "\n" ;


 

2)函数,如下:

3)注释:

1】%用来定义map/hash;
2】对单个的key赋值是使用$,例如$myhash{'k3'} = 300;
3】keys获得所有的keys到array;
4】values获得所有的values到array;
5】迭代,每次返回一对key/value;
6】exists用来判断某个key是否存在;
7】delete用来删除指定的key,同时对应的value也被删除;

 

完!

posted @ 2010-03-25 17:08 iTech 阅读(847) 评论(0) 编辑 收藏