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

Re^5: Hash of Hash of Arrays

by duyet (Friar)
on Aug 27, 2016 at 05:22 UTC ( #1170567=note: print w/replies, xml ) Need Help??


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

The code in the else block within the while loop should be changed:
# store data in a temp hash if ( $line =~ m/:/ ) { my ( $key, $value ) = split /:\s*/, $line; $hash->{ $key } = $value; } elsif ( $line =~ m#/# && exists $hash->{Files} ) { $hash->{Files} .= ";$line"; }

Replies are listed 'Best First'.
Re^6: Hash of Hash of Arrays
by voltas (Novice) on Aug 29, 2016 at 06:41 UTC
        Thanks much Duyet.. Really appreciate your ur suggestions and for your valuable time. WRT your suggestion I tried modifying your logic to accommodate further new entries into the log file. New values 'DEV' and 'QA' have been added along with the JIRA, like below:
        ------------------------------------------ DEV: COM-1258 Program:Testing Reviewer:Jackie Description:New Entries rev:r145201 ------------------------------------------ QA: COM-9696 Program:Testing Reviewer:Poikla Description:Some random changes rev:r112356 ------------------------------------------ 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
        Below is the modified section in the code:
        my $program = $hash->{Program} || ''; my $jira = $hash->{JIRA} || ''; my $qa = $hash->{QA} || ''; my $dev = $hash->{DEV} || ''; if ( $program && $jira ) { push @{ $data->{ $program }{ $jira }}, $hash; $hash = {}; } elsif ( $program && $qa) { push @{ $data->{ $program }{ $qa}}, $hash; $hash = {}; } elsif ( $program && $dev) { push @{ $data->{ $program }{ $dev}}, $hash; $hash = {}; } } else ... .... ....
        but its unable to display the value in the format you displayed. I'm getting blank output.It cannot read the new entries QA and DEV . Below is the output i'm looking for
        ================================== 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 ***************** DEV ID: COM-1258 ***************** rev => r14521 Reviewer => Jackie foja Description =>New Entries ***************** QA ID: COM-9696 ***************** rev => r112356 Reviewer => Poikla Star Description => Some random changes
        Sorry to test your patience but could you please help me out here . I'm a perl noob , so pls. bear with me.
          I don't understand why you keep adding new stuff to your question. Why not at once? Anyway, you don't have to treat the 'QA' and 'DEV' differently, as it contains COM code just like JIRA:
          # save all stored data if we see dashes line my $program = $hash->{Program} || ''; my $com_code = $hash->{JIRA} || $hash->{QA} || $hash->{DEV} + || ''; if ( $program && $com_code ) { push @{ $data->{ $program }{ $com_code }}, $hash; $hash = {}; }
          If you used the Dumper( $data ), commented out somewhere in the middle of the code, then you would have seen how the data is set. Based on that, you can change the code (after Dumper statement) to display what ever you wanted.

          Good luck.

    Log In?
    Username:
    Password:

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

    How do I use this? | Other CB clients
    Other Users?
    Others pondering the Monastery: (9)
    As of 2020-04-05 10:29 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?
      The most amusing oxymoron is:
















      Results (33 votes). Check out past polls.

      Notices?