Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Hash of Hash of Arrays

by GotToBTru (Prior)
on Aug 24, 2016 at 12:40 UTC ( #1170306=note: print w/replies, xml ) Need Help??

in reply to Hash of Hash of Arrays

Is the example data the output of the code snippet? %prog?

But God demonstrates His own love toward us, in that while we were yet sinners, Christ died for us. Romans 5:8 (NASB)

Replies are listed 'Best First'.
Re^2: Hash of Hash of Arrays
by voltas (Novice) on Aug 24, 2016 at 13:30 UTC
    No, its the output I'm expecting. the output of my code snippet is in the top portion of the post.Thanks
      Appreciate your response, shared the entire details. My log file is below:
      JIRA: COM-1234 Program:Development Reviewer:John Wick Description:Genral fix rev:r345676 ------------------------------------------ JIRA:COM-1234 Program:Development Reviewer:None Description:Updating Received rev:r909276 ------------------------------------------ JIRA: COM-6789 Program:Testing Reviewer:Balise Mat Description:Audited rev:r876391 ------------------------------------------ JIRA: COM-6789 Program:Testing Reviewer:Chan Joe Description:SO hwat rev:r698392 ------------------------------------------ JIRA: COM-6789 Program:Testing Reviewer:Chan Joe Description:Paid the Due rev:r327896 ------------------------------------------
      My incomplete code is below.
      #!/usr/bin/perl use strict; use warnings; use 5.010; use Data::Dumper; my @records = do { local $/ = '------------------------------'; <>; }; chomp @records; my %jira; foreach (@records) { next unless /\S/; my %rec = /^(\w+):\s*(.+?)$/mg; push @{$jira{$rec{Program}}{$rec{JIRA}}}, \%rec; } #say Dumper \%jira; foreach $prg (keys %jira) { print "=========================================================== +=\n"; print " PROGRAM : prg + \n"; print "=========================================================== +=\n"; foreach $jira (keys %{$jira{$prg}}) { print "******************\n"; print "JIRA ID : $jira\n"; print "******************\n"; @myarr = @{$jira{$prg}{$jira}}; foreach $val (@myarr) { for $i ( 0 .. $#myarr ) { print "NO:$i\n"; foreach $key (keys %{$myarr[$i]}) { #print "KEY: $key\n"; print " ======> $val[$i]{revision}\n"; } } } } }
      What I'm trying to accomplish is to read the log file and print the output in the below format.
      ================================== Program: Development =================================== ***************** JIRA ID: COM 1234 ***************** rev => r345676 Reviewer => John Wick Description => Genral fix rev => r909276 Description => Updating Received Reviewer => None ================================== Program: Testing =================================== ***************** JIRA ID: COM 6789 ***************** rev => r876391 Description => Audited Reviewer => Balise Mat rev => r698392 Reviewer => Chan Joe Description => SO hwat rev => r327896 Reviewer' => Chan Joe Description' => Paid the Due
      I'm able to print the unique Program & JIRA ID but the revision, Reviewer and Description values are getting displayed multiple times for every single JIRA ID. Looking forward for your suggestions.Thanks much.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1170306]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (7)
As of 2020-03-29 21:59 GMT
Find Nodes?
    Voting Booth?
    To "Disagree to disagree" means to:

    Results (171 votes). Check out past polls.