in reply to Struggling with complex data structures and doing useful operations on their elements and populating from arrays

Update: Added results:
# How to loop through the second layer: What is in each element of @i +nfo? print "\$info:\n"; foreach my $info_item (@info) { #print " []='$info_item'\n"; # Let's try a simple split command: my @info_fields = split /\,/, $info_item; print "\$info_field:\n"; foreach my $info_field (@info_fields) { print " []='$info_field'\n"; } }

Results show us that this simple approach is not sufficient to match the complexity of the data structure:

D:\PerlMonks>lists3.pl $info: $info_field: []='Mary' []='Owens' []='cat' []='white' $info_field: []='Bill' []='Thompson' []='(cat' []='dog)' []='(white' []='black)' $info_field: []='Bill' []='Thompson' []='(hamster' []='cat)' []='(black' []='brown)' $info_field: []='Bill' []='Smith' []='(goldfish' []='dog' []='turtle)' []='(yellow' []='spotted' []='green)'
  • Comment on Re: Struggling with complex data structures and doing useful operations on their elements and populating from arrays
  • Select or Download Code

Replies are listed 'Best First'.
Re^2: Struggling with complex data structures and doing useful operations on their elements and populating from arrays
by hiyall (Acolyte) on Mar 12, 2015 at 14:33 UTC

    Attempting to clarify data and objective by redoing sample code

    #!/usr/bin/perl -w use strict; # small snippet to explore dealing with complex data structures and du +plicates/uniques and consolidation my %pets; my @info; #() below only signify that multiple elements possible in 3rd and 4th +elements of $info[i] $a="Mary":"Owens":"cat":"white"; $b="Bill":"Thompson":"cat,dog":"white,black"; $c="Bill":"Thompson":"hamster,cat":"black,brown"; $d="Bill":"Smith":"goldfish,dog,turtle":"yellow,spotted,green"; push @info,$a,$b,$c,$d; #how to organize this data and loop thru to populate %pets from @info +and extract output as below #desire to loop through @info and populate %pets with structure for pe +ts hash #$pets{first}{last}{species}{color} #with {first} and {last} containing scalars #with {species} and {color} containing arrays exit; # Desired output from printing %pets: single line with unique elements + for the species and color arrays and fields separated by ":" "Mary":"Owens":"cat":"white" "Bill":"Thompson":"cat","dog","hamster":"white","black","brown" "Bill":"Smith":"goldfish","dog","turtle":"yellow","spotted","green"

      The first example was perfectly clear.
      This one don't even run.