#!/usr/bin/perl # use strict; use warnings; use Data::Dumper; my %hash1; my %hash2; foreach my $line () { my ($key, $value) = split(/\s+/, $line); push(@{$hash1{$key}}, $value); push(@{$hash2{$value}}, $key); } print Dumper(\%hash1); print Dumper(\%hash2); print "Values for key a are @{$hash1{a}}\n"; print "Keys with value b are @{$hash2{b}}\n"; print "Keys with value h are @{$hash2{h}}\n"; __DATA__ key value a b a c a d e f g h g i j h