Perl中的数组&哈希应用

哈希和数组是Perl中较为常用的结构,本文则重点讨论数组和哈希的一些基本用法,供广大喜爱Perl的同学们交流学习。

哈希

Perl中的哈希表类似于Python中的字典结构,由(键=>值)对构成,以"%"开头:

  • 定义:%hash = ('a'=>1,'b'=>2,'c'=>3);或 %hash = ('a',1,'b',2,'c',3);
  • 访问:$hash{'a'}; #直接用花括号访问
  • 插入元素:$hash{'d'} = 4; #('a'=>1,'b'=>2,'c'=>3,'d'=>4)
  • 删除键值对:delete $hash{'a'}; #('b'=>2,'c'=>3)
  • 清空:undef %hash;或 %hash = ();
  • 判断哈希中是否包含某key:exits($hash{$hey}); #存在返回1,不存在返回0

哈希遍历:

while(my($key,$value)=each%h){

  print"$key\t$value\n";}


嵌套哈希:

  • 定义:%MulHash = (

      'fruit'=>{'apple'=>1,'banana'=>2},

      'vegetable'=>{'potato'=>1},

      'family'=>['wife','husband','son']);

ps:嵌套哈希定义时最外层用小括号,但嵌套内容必须是花括号,若嵌套数组,则需用中括号

  • 插入哈希元素:$MulHash{'weight'}={'jack'=>100,'mary'=>150}; #直接赋值即可
  • 元素访问:$MulHash{'fruit'}{'apple'} = 1;
  • 数组嵌套访问,把序号放在对应的地方即可:$MulHash{'family'}[0]='daughter';

嵌套哈希遍历:层序遍历即可

for $key1(sort keys %MulHash){

  for $key2 (sort $MulHash{$key1}){

    print $MulHash{$key1}{ $key2};

}}


数组

perl数组变量以“@”开头,是一种列表结构。

  • 定义:@array = ('a','b','c','d');
  • 元素访问:跟很多语言一样,Perl数组同样通过下标存取,第一个下标为0。$array[0];
  • 数组拷贝:@array1 = @array2;
  • 打印数组:print (@array,"\n");或print ("@array\n");
  • 数组长度:$len = @array; #$len为数组@array的长度;
  • 子数组:@subarray1 = @array[0,1]; @subarray2 = @array[0..2]; #@subarray1=('a','b');@subarray2=('a','b','c');
  • 数组排序:@array2=sort(@array);#@array2=("a","b","c")
  • 数组反转:@array2=reverse(@array);或@array2=reversesort(@array);

数组遍历:

foreach $item (@list) {
    print "$item\n";
}

for (my $i = 1; $i < @list; $i++){
  print "$key_word[$i]";

}

转载于:https://www.cnblogs.com/tec-vegetables/p/3726111.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值