#! perl -sw
use 5.010;
use strict;
use List::Util qw[ reduce ];
$a = $b; ## disable Name "main::b" used only once: possible typo
use Data::Dump qw[ pp ];
my %hash = map{
%{ +reduce{
+{ $b => ref( $a ) ? $a : [ split ' ', $a ] }
} reverse split ':', $_ }
} <DATA>;
pp \%hash;
__DATA__
gkey01:key1:1 2 3 4 5 6 7 8
gkey02:key1:key2:key3:1 2 3 4
gkey03:key1:key2:key3:key4:1 2 3 4 5 6 7 8
gkey04:key1:key2:key3:1 2
gkey05:key1:key2:key3:key4:1 2
gkey06:key1:key2:key3:key4:key5:1 2 3
gkey07:key1:key2:1 2 3 4 5 6 7 8 9
gkey08:key1:key2:key3:key4:1 2 3 4 5 6 7
gkey09:key1:1 2 3 4 5 6 7
gkey10:key1:1 2 3 4 5 6
gkey11:key1:1 2 3 4
gkey12:key1:key2:1 2 3 4 5 6 7 8 9 10
gkey13:key1:key2:key3:key4:1 2 3 4
gkey14:key1:key2:key3:1 2
gkey15:key1:1 2 3 4 5 6 7
gkey16:key1:key2:1
gkey17:key1:key2:key3:1 2 3 4 5 6 7 8 9 10
gkey18:key1:key2:1 2 3 4 5 6 7
gkey19:key1:key2:key3:1 2 3 4 5 6 7 8
gkey20:key1:key2:1 2 3 4 5 6 7 8 9
Output: C:\test>junk3
{
gkey01 => { key1 => [1, 2, 3, 4, 5, 6, 7, 8] },
gkey02 => { key1 => { key2 => { key3 => [1, 2, 3, 4] } } },
gkey03 => {
key1 => { key2 => { key3 => { key4 => [1, 2, 3, 4, 5, 6, 7, 8] }
+} } },
gkey04 => { key1 => { key2 => { key3 => [1, 2] } } },
gkey05 => { key1 => { key2 => { key3 => { key4 => [1, 2] } } } },
gkey06 => {
key1 => { key2 => { key3 => { key4 => { key5 => [1, 2, 3] } } } }
+ },
gkey07 => { key1 => { key2 => [1, 2, 3, 4, 5, 6, 7, 8, 9] } },
gkey08 => {
key1 => { key2 => { key3 => { key4 => [1, 2, 3, 4, 5, 6, 7] } } }
+ },
gkey09 => { key1 => [1, 2, 3, 4, 5, 6, 7] },
gkey10 => { key1 => [1, 2, 3, 4, 5, 6] },
gkey11 => { key1 => [1, 2, 3, 4] },
gkey12 => { key1 => { key2 => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] } },
gkey13 => { key1 => { key2 => { key3 => { key4 => [1, 2, 3, 4] } } }
+ },
gkey14 => { key1 => { key2 => { key3 => [1, 2] } } },
gkey15 => { key1 => [1, 2, 3, 4, 5, 6, 7] },
gkey16 => { key1 => { key2 => [1] } },
gkey17 => { key1 => { key2 => { key3 => [1, 2, 3, 4, 5, 6, 7, 8, 9,
+10] } } },
gkey18 => { key1 => { key2 => [1, 2, 3, 4, 5, 6, 7] } },
gkey19 => { key1 => { key2 => { key3 => [1, 2, 3, 4, 5, 6, 7, 8] } }
+ },
gkey20 => { key1 => { key2 => [1, 2, 3, 4, 5, 6, 7, 8, 9] } },
}
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
|