jhumphreys:
"Not working" isn't much of a description. If I had to guess (and I do, since I don't know what "Not working" means), I'd guess that it appears to hang, since you don't reprompt if there's an error. Perhaps you ought to put an error message in there. For example:
OUTER1: while (<STDIN>) {
chomp;
for $to (%rates) {
last OUTER1 if $to eq $_;
}
print "I can't find a conversion for '$_'!\n";
}
Also, there are better ways to check your hash. They are, after all, optimized for searching. Read perldoc perldsc and perldoc -f exists for clues to simplify your loops!
...roboticus
When your only tool is a hammer, all problems look like your thumb.