#!/usr/bin/env perl use strict; use warnings; use Data::Dumper; my %hash; while () { chomp; my ($k, $v) = split /\s/; $hash{$k}{$v} = undef; } $hash{$_} = [keys %{$hash{$_}}] for keys %hash; print Dumper \%hash; __DATA__ bird beak bird beak bird claw bird wings bird feathers snake fangs snake scales snake fangs snake tail