加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 意外数据:: Dumper :: Dumper结果

发布时间:2020-12-15 21:47:12 所属栏目:大数据 来源:网络整理
导读:为什么这里 Data::Dumper :: Dumper打印$VAR1- {‘AA’} [2]而不是{1 = 6}? #!/usr/bin/env perluse warnings;use strict;use 5.10.0;my @a = ( 'a','b',{ 1 = 6 } );my %h = ( 'AA' = [ @a ],'BB' = [ @a ],);say $h{BB}-[2]{1};use Data::Dumper;say Dump
为什么这里 Data::Dumper :: Dumper打印$VAR1-> {‘AA’} [2]而不是{1 => 6}?
#!/usr/bin/env perl
use warnings;
use strict;
use 5.10.0;

my @a = ( 'a','b',{ 1 => 6 } );
my %h = (
    'AA' => [ @a ],'BB' => [ @a ],);


say $h{BB}->[2]{1};

use Data::Dumper;
say Dumper %h;

输出:

6
$VAR1 = {
        'AA' => [
                    'a',{
                    '1' => 6
                    }
                ],'BB' => [
                    'a',$VAR1->{'AA'}[2]
                ]
        };

解决方法

在您的示例中,$VAR1-> {‘AA’} [2]和$VAR1-> {‘BB’} [2]是对同一哈希的引用.

Data::Dumper不希望多次打印变量.此行为更忠实地表示数据结构,并且它避免了可能遇到的任何无限循环.
例如.:

my $loop;
$loop = { 1 => $loop };
print Dumper $loop;

输出是

$VAR1 = {
     '1' => $VAR1
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读