in reply to The following returns no value for $lang

You aren't creating your %lang_dev hash correctly. If you want to break it apart by commas, you need to read each line, split on the comma, and store it:
while (<LANGUAGES>) { chomp; my ($key, $value) = split /,\s*/; $lang_dev{$key} = $value; }
Your method for pulling the data from a hash reference should be fine, but you might also consider writing it this way (which in my opinion is a bit more clear)

Editor's note: This post originally included tekniko's question, properly formated. Since I added the formatting tags to the question, I removed the duplication from this post.

Originally posted as a Categorized Answer.