Did you copy the file
mil-dic.txt from winxp to linux? If so, unix newlines (\n) vs. dos newlines (\r\n) might cause problems. The \r characters are seen as part of the line.
file mil_dic.txt on most linuxes reveals whether you have dos or unix newlines. You can use the program dos2unix to convert your file. Real perl cracks convert command line: on linux,
perl -i -p -e "s/\r//" mil-dic.txt
(converting unix to dos newlines on a windows machine won't work this way, though)
From lots of experience learnt after countless headaches: whenever there is strange file behaviour, look for the newlines.