in reply to Hash , Keys strangely chopped !!

As ikegami said above, you need to use $i not $i-1 in the substr. Running the data you listed on my machine resulted in all being chopped (probably because of the lack of spaces before the "=")

I would suggest, however, using split instead of index and substr. It's simpler and cleaner with no messy index residue!
my ( $conf, $val ) = split /=/, $line, 2;