Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^2: Hash of Hash of Arrays

by voltas (Novice)
on Aug 24, 2016 at 13:30 UTC ( #1170312=note: print w/replies, xml ) Need Help??


in reply to Re: Hash of Hash of Arrays
in thread Hash of Hash of Arrays

No, its the output I'm expecting. the output of my code snippet is in the top portion of the post.Thanks

Replies are listed 'Best First'.
Re^3: Hash of Hash of Arrays
by voltas (Novice) on Aug 25, 2016 at 10:12 UTC
    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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (8)
As of 2020-03-31 08:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    To "Disagree to disagree" means to:









    Results (180 votes). Check out past polls.

    Notices?