用 Scalar 排序中文出现乱码

用 Scalar 排序中文出现乱码

在当前工作目录下面有一个叫做 allen.txt的文件。该文件的内容有3行,如下:
---------------
1234
中国
5678

---------------
注意,上面文件5678之后有一个回车。

我用 reverse 和 Scalar 对这个文件进行整体倒序。code如下:
-----------------
#!/usr/bin/perl -w
open (ALLEN, "allen.txt" )||die "cannot open file: $!\n";
@contents=<ALLEN>;
close(ALLEN);
foreach (reverse (@contents)) {
print scalar(reverse ($_));
}
-------------

我期望的输出结果是:
8765
国中
4321

然而真实的输出结果是:
8765
?兄
4321

也就是第二行的中国在进行排序后变成了乱码。

请问这是什么原因?应该如何解决?
猜想,应加上use utf8;一句,你自己测试一下吧。
试了 use UTF8,但是还是不好使啊??
http://blog.chinaunix.net/u/78/showart_1011862.html