in reply to Re^2: Generating Hashes from arrays of arbitrary size
in thread Generating Hashes from arrays of arbitrary size
use Data::Dumper; my %shash; foreach my $line (<DATA>) { # Get rid of end of line. chomp($line); # Build hash from line. my (@items) = split /--/, $line; @items or next; my $p = \%shash; # Start at root node while (@items > 1) { my $i = shift @items; $p->{$i}[0] ||= {}; # Create new node if necessary $p = $p->{$i}[0]; # Point at new node } my $i = shift @items; # Get last item $p->{$i}[1] = $i; # Make it a leaf of the last node } print(Dumper(\%shash)); __DATA__ Item1--Item2--Item3 ItemX--Item2--ItemA Item1--ItemV--Item3--Item4 Item1--Item2--Item3--Dup! ItemX
|
|---|