aakikce, I think the prolem is not in the assignment of the array to a hash, but in the parsing of your input file. You are wanting @con to receive key and value pairs, the key going into even and value going into odd indices of your array. Here's a version of your while loop that should work:
my ($key, $value) = /^(\w+)=\>(\w+)/;
push @con, $key, $value;
There are a couple of style points to note. I'm using "my" to declare variables that I'm using. This goes a long way towards strictness - allowing you to "use strict" at the top of your program. Learn how to use push: it'll save you needing to count array elements and have a $i variable.