【问题标题】:How to print complex data(Array of Hash) structure in perl如何在perl中打印复杂数据(哈希数组)结构
【发布时间】:2014-03-04 07:02:58
【问题描述】:

出于调试目的,我必须打印以下哈希。有人可以帮我解决这个问题,因为我对复杂的数据结构并不陌生:

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. 

【问题讨论】:

  • use Data::Dumper; print Dumper($issueMap);
  • @DanielKamilKozar:您应该将其发布为答案。
  • @Borodin:嗯,我很好。 :)

标签: perl


【解决方案1】:

我开始使用DDP(Data::Printer 的缩写),它可以提供更清晰、漂亮的彩色和灵活的输出,而不是在屏幕上产生两到三遍的大量行页。

use DDP;

p $issueMap;

查看Customization of Data::Printer 的许多选项,例如expand 以使其更深入您的结构。

【讨论】:

    猜你喜欢
    • 2011-01-26
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 2020-10-16
    • 2013-06-24
    • 2023-03-08
    • 2017-08-12
    • 2016-02-21
    相关资源
    最近更新 更多