while () { my ($one, $two) = split; $seen{$one} = [$two, exists $seen{$one} ? @{$seen{$one}} : () ]; } #### while () { my ($one, $two) = split; push @{$seen{$one}}, $two; }