in reply to Using eval to create a hash

Yes you can, when you understand it well, eval is a powerfull tool. Read carefully the AnomalousMonk's reply to get rid of the error in your original code: if you have doubts on plain code it will be a pain to debug string evaluated code.

I used eval string form, with no pudor and gaining a lot of critics, in my experiment cpan's namespace navigator.
In my code there is a big evaluation part that transforms data from a text file into a big, big hash.

This is what i remember about my troubles doing that: as usual 'bad data ruins your day', so you need to be sure about what you are evaluating. If you split on withespaces and take the first result as the key you can be bitten by a unexpected strings that can cause code to run outside your intention, or strings that break your data structure.

If you expect a keypair for each line of your file, check for the total count of your keys is equal to line number at the end of file. The field used as key must follow rules for keys names in Perl. If you need to tranform something before using as keys(special chars, withespaces..) you need tobe able to do the two way conversion safely and reliably...
Duplicates are normal in text files but not in hash's key: it will results into an update of such keys on succesive reads of the same string..

Take a look also to Data::Diver module that creates datastructures from strings.

HtH
L*
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.