use strict; use warnings; my %pred; while () { chomp; my @items = split /-/, $_; my $first = $items[0]; for my $element (@items) { $pred{$element} = $first; } } print "$_ => $pred{$_}\n" for sort keys %pred; __DATA__ 123-234-345-456-567 117-228-339 131 213-324-435 372