in reply to Generating Hashes from arrays of arbitrary size

What is the data structure you want to end up with? Do you want a single hash with all of the items as keys (a unique list of all items in your file)? If so, then it's a lot easier than that.
use strict; use warnings; my $datafile = 'data.txt'; open( my $fh, $datafile ) or die "Cannot open '$datafile' for reading: $!\n"; my %items; while ( defined( my $line = <$fh> ) ) { chomp( $line ); $line =~ s/[\r\n]*$//; my @values = split /--/, $line; @items{ @values } = undef; } close $fh; # At this point, you have %items, which is a lookup table.

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.