#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper; 


# Set it back up
my $key1 = 'city1';
my $key2 = 'city2';
my $key3 = 'city3';

my $val1 = 'zip1';
my $val2 = 'zip2';
my $val3 = 'zip3';
my $val4 = 'zip1';

my $hashref = {};
my @assoc = ($val1,$val3,$val4);

#approach 2 key hash - assoc-cnt hash
foreach my $value (@assoc) {
  if ($hashref->{$key2}->{$value}) {
	$hashref->{$key2}->{$value} ++;
  }else{
	$hashref->{$key2}->{$value} = 1;
  }
}
# print Dumper $hashref;	


# Reverse it

my $revhash = {};
foreach my $key (keys(%$hashref)){
foreach my $val (keys(%{$hashref->{$key}})){
  $revhash->{$val}->{$key} = $hashref->{$key}->{$val};
}
}

print Dumper $revhash;
