in reply to List in hash in hash example from Python original

How about this?

#!/usr/bin/env perl use strict; use warnings; my $data = "test1 ERROR1 ERROR1:TYPE1 test2 ERROR1 ERROR1:TYPE2 test3 ERROR2 ERROR2:TYPE1 test4 ERROR1 ERROR1:TYPE1 test5 ERROR2 ERROR2:TYPE1 test6 ERROR2 ERROR2:TYPE2 "; my @data = map [ split /\s+/, $_ ], split "\n", $data; my %nested; for (@data) { my ($file, $error, $type) = @$_; push @{ $nested{$error}{$type} }, $file; } for my $error (sort keys %nested) { print "\n##", $error, $/; for my $type (sort keys %{ $nested{$error} }) { print '#', $type, $/; print join( ', ', @{ $nested{$error}{$type} } ), $/; } } __DATA__ outputs: ## ERROR1 # ERROR1:TYPE1 test1, test4 # ERROR1:TYPE2 test2 ## ERROR2 # ERROR2:TYPE1 test3, test5 # ERROR2:TYPE2 test6

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)

Replies are listed 'Best First'.
Re^2: List in hash in hash example from Python original
by paddy3118 (Acolyte) on Apr 17, 2015 at 06:01 UTC
    Thank you Jeffa!
    I shall try this out and adapt it for my full problem later today but this is so sweet. Someone else pointed me at perldoc.perl.org/perldsc.html and perldoc.perl.org/perllol.htm, which I was reading but finding hard to turn into a working example. They should however allow me to fully understand your reply.

    Thanks again Jeffa and PerlMonks!
Re^2: List in hash in hash example : As future RC task?
by paddy3118 (Acolyte) on Apr 17, 2015 at 06:23 UTC
    I am thinking that the above question might be formed into a task for the Rosetta Code site?

    If I do then I will make sure to announce it here and ask you if you would like to contribute (or allow someone to add your solution with attribution), to the tasks examples.

    - Paddy.

      Perhaps. I glanced through the categories from the link you provided and i found no applicable parent category (i was looking for Data Structures, Complex Data Structures, Tuples, etc. ... no luck) As it stands, your question is too specific in how you want to organize your data into Hashes and Arrays. One really needs to only understand how Hashes can store Arrays and Hashes, and how Arrays can store Hashes and Arrays -- the rest is combinations and variations of AoA, HoH, AoH and HoA.

      So, if you want to supply some examples for Rosetta Code, then i think you will do well by first perusing perldsc and then find similar documentation for Python. Try to use very generic examples for your data structures. I think describing each of the following is more than enough: AoA, HoH, AoH, and HoA. Perhaps you can add this as a new category called "Complex Data Structures." Cheers!

      jeffa

      L-LL-L--L-LL-L--L-LL-L--
      -R--R-RR-R--R-RR-R--R-RR
      B--B--B--B--B--B--B--B--
      H---H---H---H---H---H---
      (the triplet paradiddle with high-hat)