Perl数组和哈希-动态语言程序设计3
继上篇讲到Perl语言的简单变量类型,这篇文章讲Perl语言另外两个变量类型----复杂变量类型。Perl中一共只有三种变量类型,除了上一篇讲到的以 $ 符号开头的简单变量之外,还数组和哈希两种变量。##ReadMore##
数组
数组变量
- 以 @ 开头
- 数组的的元素可以是数值、字符串或两者的混合
数组的赋值
- @array = (2, 3, 4);
- @array = (‘str1’, “\tstr2”, “str3”);
- $str4=“str4”; @ array = (‘str1’, “\tstr2”, $str4);
- @array = (1..3,4,5);
- @day_of_month = ("01".."31")
- @array = (e..f); @array= ($a, $b, @array, $g);
- @array = ();
数组包含元素的个数
- $Size= @array;
访问数组元素与遍历
$array[no];
@array=(1,2,3,4,5); $Element=$array[0];
foreach $Element(@array){print “$Element”;}
for($i=0; $i <@array;$I++){print “$array[$i]”;}
其他赋值操作
- ($First)= @array;
- ($First,$Second)= @array;
- ($First,$Second,@SubAraay)= @array;
- @SubAraay = @array[0,1];
- @Array[0,1] = ("string", 46);
有关数组的操作函数
- push(@Array,$Str) ; #在结尾添加一个元素
- $Str =push(@Array) ; #在结尾删除一个元素
- unshift (@Array, $Str) ; #在头添加一个元素
- $Str = shift (@Array) ; #在头删除一个元素
- @sorted=sort(@Array); #只有在赋值时有效
- @ reversed=reverse(@Array); #只有在赋值时有效
- @array=split(“; ”,$String); #字符串拆解
- $String =join(“;”, @array); #字符串连接
- chop(@array); #对每个元素去掉最后一个字符
- chomp(@array); #对每个元素去掉最后一个换行符
哈希
哈希变量
- 以%开头表示哈希变量
- 集合((key1,value1), (key2,value2),… (keym,valuem))
- Key 为数值或者字符串
- Value 为数值、者字符串或者引用
哈希的赋值
- %Hash=();
- %Ages = ("Michael Caine", 39, "Dirty Den", 34, "Angie", 27);
- @fruit = ("apples",17,"bananas",9,"oranges","none"); %fruitHash = @fruit;
- $var1, $var2, %myarray) = @list
- @Key=keys(%hash);
- @value=values(%hash);
访问哈希表
- $ages{"Michael Caine"}; # Returns 39
- $ages{"Dirty Den"}; # Returns 34
增加元素
$hash{$key}=$value;
删除元素
delete ($Hash{$Key});
查找
if ( defined $hash{$element} ){print “$hash{$element}”;}
遍历
foreach $person (keys %ages){print "$person $ages{$person}\n";}
foreach $person (sort keys %ages){print "$person $ages{$person}\n";}
%records = ("Maris", 61, "Aaron", 755, "Young", 511);
while (($holder, $record) = each(%records)) {print "$holder $record \n";}
0 评论 :
发表评论