[ create a new paste ] login | about

Link: http://codepad.org/XsMCDW2y    [ raw code | output | fork ]

vol7ron - Perl, pasted on Oct 13:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use Data::Dumper;
my $hoh = {};

   foreach my $str ('a:b:c:d:a','a:b:c:d:z'){      
      my @vals    = split /:/,$str;
      my $hr      = $hoh;
      my $lastkey = @vals[-2];

      for (0..$#vals-2){
         $hr->{$vals[$_]}= $hr->{$vals[$_]} || {};
         $hr=$hr->{$vals[$_]};
      }
      if (defined $lastkey){
         push @{$hr->{$lastkey}}, [@vals[-1], $str];
      }
   }

print Dumper($hoh);


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$VAR1 = {
          'a' => {
                   'b' => {
                            'c' => {
                                     'd' => [
                                              [
                                                'a',
                                                'a:b:c:d:a'
                                              ],
                                              [
                                                'z',
                                                'a:b:c:d:z'
                                              ]
                                            ]
                                   }
                          }
                 }
        };


Create a new paste based on this one


Comments: