繁体   English   中英

如何在perl中打印复杂数据(哈希数组)结构

[英]How to print complex data(Array of Hash) structure in perl

出于调试目的,我必须打印下面的哈希。 可以帮助我解决这个问题,因为我在复杂的数据结构方面不是新手:

use strict;
use warnings;

my $issueMap;

$issueMap = {
        'project' => SOAP::Data->type(string => "abc"),
        'type' => SOAP::Data->type(string => "3"),
        'summary' => SOAP::Data->type(string => $title), #issueDesc
        'description' => SOAP::Data->type(string => $issueDesc),
        'components' => [{'id' => SOAP::Data->type(string => $component_id)}],
        'customFieldValues' => SOAP::Data->type('Array' => [
                { 'customfieldId' => SOAP::Data->type(string => 'customfield_10933'), values => [ SOAP::Data->type(string => $acbPath) ] },
                { 'customfieldId' => SOAP::Data->type(string => 'customfield_10934'), values => [ SOAP::Data->type(string => $Path) ] },
                { 'customfieldId' => SOAP::Data->type(string => 'customfield_10935'), values => [ SOAP::Data->type(string => $logPath) ] },
                { 'customfieldId' => SOAP::Data->type(string => 'customfield_10071'), values => [ SOAP::Data->type(string => "PROD") ] },
                { 'customfieldId' => SOAP::Data->type(string => 'customfield_10544'), values => [ SOAP::Data->type(string => $check_area) ] }, 
                { 'customfieldId' => SOAP::Data->type(string => 'customfield_10842'), values => [ SOAP::Data->type(string => "Unavailable") ] },
                { 'customfieldId' => SOAP::Data->type(string => 'customfield_14927'), values => [ SOAP::Data->type(string => "Unavailable") ] },
                { 'customfieldId' => SOAP::Data->type(string => 'customfield_14930'), values => [ SOAP::Data->type(string => $mcn) ] }, #MCN
                { 'customfieldId' => SOAP::Data->type(string => 'customfield_14929'), values => [ SOAP::Data->type(string => $serialno) ] }, #SERIAL
                { 'customfieldId' => SOAP::Data->type(string => 'customfield_10060'), values => [ SOAP::Data->type(string => "$user_runner") ] } #user
        ])
    }; 

    Debug
     foreach my $check (%{$issueMap})
     {
       print $issueMap ->$check."\n";
     }


Error : Can't call method "customFieldValues" on unblessed reference during printing hash. 

我开始使用DDPData::Printer缩写),它提供了更清晰,更好的彩色和灵活的输出,而不是在屏幕上产生两到三次的大量页面线。

use DDP;

p $issueMap;

看看Data :: Printer的Customization for the many选项,比如expand以深入了解你的结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM