Perl由于有了引用,使得我们可以在不同的数据结构之间灵活的嵌套数据结构。
比方说,Hash的value可以是标量,也可以嵌套list,甚至还可以继续嵌套hash。

这样使得我们写代码的确方便了不少,但有的时候我们希望对这些复杂的数据结构
有个直观的感受,也就是说能够用perl的语法吧数据结构以及实际值表示出来。这在开发阶段尤其
有用!

正好Perl的模块Data::Dumper可以帮助我们干这件事。

Data::Dumper有面向对象和直接使用函数两种调用方法,

这里介绍直接使用函数的方式,简单好用,应该能够满足绝大多数需求:

Dumper接收的参数为一个标量的列表或者一个引用的列表。
my $a = "good";
my $b = "bad";
my @my_array = ("hello", "world", "123", 4.5);
my %some_hash = ("foo", 35, "bar", 12.4, 2.5, "hello",
          "wilma", 1.72e30, "betty", "bye\n");

##使用函数
print Dumper($a);
print Dumper(\@my_array);
print Dumper(\%some_hash);
print Dumper((\%some_hash, \@my_array));

运行效果:
roger@roger-desktop:~/sandbox$ perl dump.pl
$VAR1 = 'good';
$VAR1 = [
          'hello',
          'world',
          '123',
          '4.5'
        ];
$VAR1 = {
          'betty' => 'bye
',
          'bar' => '12.4',
          'wilma' => '1.72e+30',
          'foo' => 35,
          '2.5' => 'hello'
        };
$VAR1 = {
          'betty' => 'bye
',
          'bar' => '12.4',
          'wilma' => '1.72e+30',
          'foo' => 35,
          '2.5' => 'hello'
        };
$VAR2 = [
          'hello',
          'world',
          '123',
          '4.5'
        ];
程序的输出会按照引用在list中的位置自动命名VAR[n].

# if debug flag open, dump key parameters from Launcher
    if ( $debug ) {

use Data::Dumper;

$Data::Dumper::Sortkeys = 1; #Sort the keys in the output
        $Data::Dumper::Deepcopy = 1; #Enable deep copies of structures
        $Data::Dumper::Indent = 2;   #Output in a reasonable style (but no array indexes)

$vmstaf->WriteTestLog( "DEBUG", "VMOTION : " .
            "Dumper Key Parameters from Launcher." );

$vmstaf->WriteTestLog( "DEBUG", "VMOTION : " .
            "Dumper :: HASH :: generalInfo" );
        print Dumper(\%generalInfo);

$vmstaf->WriteTestLog( "DEBUG", "VMOTION : " .
            "Dumper :: HASH :: vcInfo" );
        print Dumper(\%vcInfo);

$vmstaf->WriteTestLog( "DEBUG", "VMOTION : " .
            "Dumper :: HASH :: vmNameToEsx" );
        print Dumper(\%vmNameToEsx);

$vmstaf->WriteTestLog( "DEBUG", "VMOTION : " .
            "Dumper :: HASH :: esxToSwitches" );
        print Dumper(\%esxToSwitches);

$vmstaf->WriteTestLog( "DEBUG", "VMOTION : " .
            "Dumper :: HASH :: esxToDevs" );
        print Dumper(\%esxToDevs);

}

转载于:https://www.cnblogs.com/licheng/archive/2009/11/27/1612239.html

[Perl] Data::Dumper模块的用法简介相关推荐

  1. Perl Data::Dumper模块介绍

    Perl的Data:Dumper用来显示变量的数据结构,对于检查对象的有关数据时会很有用. #!/usr/bin/perl use Data::Dumper; use strict; my $my_s ...

  2. RPM 安装 mysql 出现 Can‘t locate Data/Dumper.pm in @INC (@INC contains

    今天我在CentOS7 上安装mysql时执行 scripts/mysql_install_db –basedir=/usr/local/mysql –datadir=/usr/local/mysql ...

  3. Perl输出复杂数据结构:Data::Dumper,Data::Dump,Data::Printer

    输出复杂结构 Data::Dumper.Data::Dump.Data::Printer都可以用来输出复杂的数据结构.本文只介绍简单的几个输出形式,以后再需要的地方再详细介绍. 前两者建议传递数据结构 ...

  4. XML::Simple与Data::Dumper在Perl中的使用

    在perl中使用XML::Simple与Data::Dumper对XML文件进行操作. foo.xml文件,内容如下: <servers>        <server>   ...

  5. FATAL ERROR: please install the following Perl modules before executing ...: Data::Dumper

    问题内容: FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_instal ...

  6. Postman用法简介-Http请求模拟工具

    Postman用法简介-Http请求模拟工具 在我们平时开发中,特别是需要与接口打交道时,无论是写接口还是用接口,拿到接口后肯定都得提前测试一下,这样的话就非常需要有一个比较给力的Http请求模拟工具 ...

  7. java test 用法,pytest基本用法简介

    1.安装pytest,打开dos窗口输入: pip install pytest 2.通过pycharm工具下载 3.创建pytest测试用例步骤 # 定义测试类 class testdivide: ...

  8. python中heapq的库是什么_详解Python中heapq模块的用法

    详解Python中heapq模块的用法 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  详解Python中heapq模块的用法.txt ] (友情提示:右键点上行t ...

  9. python中heapq的库是什么_Python中heapq模块的用法

    heapq 模块提供了堆算法.heapq是一种子节点和父节点排序的树形数据结构.这个模块提供heap[k] <= heap[2*k+1] and heap[k] <= heap[2*k+2 ...

  10. perl use和require的用法

    本文和大家重点学习一下Perl use和require用法对比,这两个函数都是一个意思,加载和引用Perl的模块,或者是子程序,区别在于Perl use是在当前默认的里面去寻找,一旦模块不在指定的区域 ...

最新文章

  1. 华为自研操作系统官宣了,但有机会成功吗
  2. Android开发之SpannableString具体解释
  3. SSH客户端开发开源组件Ganymed SSH-2 for Java初体验
  4. 静态分析android代码, 循环与trycatch
  5. 瞧瞧,这样的『函数』才叫 Pythonic
  6. ProgressBar 类
  7. 带有Gradle的Spring Boot Web应用程序
  8. xsslabs靶机解题_web 攻击靶机解题过程
  9. 作者:李崇纲,男,北京金信网银金融信息服务有限公司常务副总经理。
  10. 总结MyBatis+Spring的整合
  11. 互联网公司如何有效执行流程的心得
  12. js 设置div超出宽度隐藏_【CSS/JS】如何实现单行/多行文本溢出的省略(...)--绕过坑道的正确姿势...
  13. 物联网发展中的关键因素又哪些?
  14. 计算机程序班搞笑口号,16字高一班级搞笑口号.docx
  15. 网络安全策略和网络安全机制
  16. 《第五堂棒球课》:MLB棒球创造营·棒球名人堂
  17. Global Industry Analysts称全球MSS市场在2017年达到112亿美元
  18. Godaddy无缝切换SSL,无需续费可省12美元
  19. python视频压缩_Python 怎样将视频压缩?并且尽量不会影响到清晰度
  20. 35岁到40岁,如何突破

热门文章

  1. banner定制网站
  2. 事业单位考试题库计算机网络,计算机考试题库:计算机网络模拟练习题(2)...
  3. android 自定义字体 ttf,Android利用TTF文件设置字体
  4. 攻防世界backup
  5. NSCalendar 日历类
  6. 三国演义人物出场次数统计
  7. 【Python 无损放大图片】——支持JPG/PNG 可将图片无损放大上万像素
  8. 转一篇千与千寻的影评。。。
  9. 在layer弹出层中使用ueditor,所有的下拉选项事件都显示不了,或被遮挡
  10. 基本数据类型----Python初体验——Hello World