为什么在 运行 这个 perl 脚本时无法识别分号?

Why is the semicolon unrecognized when running this perl script?

来自文本编辑器的代码

终端错误。

我正在尝试设置 Moss(用于 CS 的斯坦福抄袭检查器),当我 运行 脚本出现无法识别脚本中分号的错误时?

这是 运行 在 Mac OSX 上使用 textwrangler 作为文本编辑器。

Unrecognized character \xC2; marked by <-- HERE after t_l = "c";<-- HERE near column 14 at ./moss.pl line 173.

它不是在抱怨 semi-colon(即 3B),而是在抱怨后面有一个值为 C2 的字节。这不是合法的 ASCII(如果你不使用 use utf8;,这是预期的)虽然它可能是合法的 UTF-8 序列的开始(如果你使用 use utf8;,这是预期的)

您在终端或编辑器中看不到它,要么是因为它对他们来说也是垃圾,要么是因为他们期望 UTF-8 并且它是某种白色的(开始)space 或不可打印UTF-8 字符。

可能是 U+00A0 NO-BREAK SPACE,UTF-8 编码为 C2 A0。这将在需要 UTF-8 的终端和编辑器中显示为正常 space。

重新键入该行以将 NBSP 替换为正常 space,或添加 use utf8; 让 Perl 将源代码视为 UTF-8。