here are a few ideas for you to try:
print @lines; - print can take a list. perhaps the problem is in the loop? unlikely. it's probably in the assignment somewere
while (<FILE>){ print } - print the lines as you read them, instead of many at a time. If this works and the prior solution doesn't i suspect something has gone wrong in you assignment to @lines.
This is very odd behavior indeed. The code works perfectly on my machine, and there is nothing in it to go wrong. Perhaps something is wrong with your terminal?
There's obviously somethine wrong with the file. If slurping didn't work, and the same stuff works for other files then the OS is at fault. I think. Perl is not sensitive to the content of the file. The readline library - perhaps you can say that, but generally no. I think the lines are simply not there. Rewrite the file to a new one, and see if the problem returns.