zoukankan      html  css  js  c++  java
  • 第2章 实现复杂的数组结构:

    实现复杂的数组结构:
    
    Perl 中使用数组的数组是最为直观的一种矩阵表达方式,因为Perl不直接支持二维数组:
    
    zjzc01:/root/perl# cat a14.pl 
    @matrix = ([1,2,3],[4,5,6],[7,8,9]);
    
    print "$matrix[1][2] is $matrix[1][2]
    ";
    
    zjzc01:/root/perl# perl a14.pl 
    $matrix[1][2] is 6
    
    
    注意这里@matrix 是一个简单的数组,它的元素为指向匿名数组的引用。也就是说,$matrix[1][2] 是$matrix[1]->[2]的简化表
    
    达形式:
    
    
    
    
    例2-1 中描述了从文件中读取数据并创建数组的数组结构,
    
    
    
    散列表的散列表:
    
    
    如果矩阵大而稀疏(只有一小部分的元素值不为零)的话,那么使用散列表的散列表或许是一种空间利用率更高的表达方式。
    
    例如矩阵:
    
    0    0  100
    200  0   0
    0    300  0
    
    $matrix{0}{2}=100;
    
    $matrix{1}{0}=200;
    
    $matrix{2}{1}=100;
    
    
    [root@dr-mysql01 ~]# cat t1.pl 
    @matrix=([1,2,3],[4,5,6],[7,8,9]);
    
    print $matrix[2][0];
    print "
    ";
    print $matrix[2]->[0];
    print "
    ";
    print $matrix[1][1];
    
    [root@dr-mysql01 ~]# perl t1.pl 
    7
    7
    5[root@dr-mysql01 ~]# 
    
    
    jrhxpt01:/root# cat 1.pl 
      $ref_to_AoA = [
                [ "fred", "barney", "pebbles", "bambam", "dino", ],
                [ "homer", "bart", "marge", "maggie", ],
                [ "george", "jane", "elroy", "judy", ],
            ];
            print $ref_to_AoA[2][2];
            print "
    ";
            print $ref_to_AoA->[2][2];
            print "
    ";
            print $ref_to_AoA->[2]->[2];
            print "
    ";
    jrhxpt01:/root# perl 1.pl
    
    elroy
    elroy
    
    
    
    数组访问和HASH 访问:
    
    zjzc01:/root/perl# cat t2.pl 
    @array=(1,3,5,7,9);
    print "$array[0] is $array[0]
    ";
    print "$array[1] is $array[1]
    ";
    zjzc01:/root/perl# perl t2.pl 
    $array[0] is 1
    $array[1] is 3
    
    zjzc01:/root/perl# cat t3.pl 
    %hash=(a=>1,b=>2,c=>3);
    print $hash{a};
    print "
    ";
    zjzc01:/root/perl# perl t3.pl 
    1
    
    
    
    格式化打印工具:
    zjzc01:/root/perl# cat t4.pl 
    @sample=(11.233,{3=>4,"hello"=>[6,7]});
    require 'dumpvar.pl';
    
    dumpValue(@sample);  ###必须以引用方式传递
    
    
    zjzc01:/root/perl# perl t4.pl 
    0  11.233
    1  HASH(0x14122c0)
       3 => 4
       'hello' => ARRAY(0x13f5d48)
          0  6
          1  7
    
    
    
    
    
    
    
    
    
    

  • 相关阅读:
    打开XX.etl文件
    ubuntu 安装 openssh-server,xinetd,vmware tools
    ESXi时间同步
    常用正则表达式字符说明
    RPC 服务器不可用
    linux 常用命令
    解决RDP连接不上
    python数据持久存储-pickle模块
    lambda表达式/对象引用计数
    关闭网络打开远程文件时防火墙安全弹窗
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351132.html
Copyright © 2011-2022 走看看