my %fruit_map; @fruit_map{@apple_ids} = ("apple") x @apple_ids; @fruit_map{@orange_ids} = ("orange") x @orange_ids; @fruit_map{@lemon_ids} = ("lemon") x @lemon_ids; while (my($k,$v) = each %hash) { print "$fruit_map{$k}-$fruit_map{$v}\n"; }