【发布时间】:2020-08-01 23:22:06
【问题描述】:
这里有一些代码没有做我希望它做的事情:
#!/usr/bin/perl -w
use utf8;
binmode STDOUT, ":utf8";
# open a filehandle to a file that contains a single line of text: Hello \x{2744}!
open (H, "<:encoding(UTF-8)", "test.txt") || die $!;
while(<H>) {
$line = $_;
chomp($line);
$var = "Hello \x{2744}!";
$line = $line . " $var\n";
print STDOUT "$line";
}
输出如下:
Hello \x{2744}! Hello ❄!
为什么它将我在脚本中分配的变量的内容打印为 unicode 字符,但对文件中包含的文本却不这样做?
我想我遗漏了一些明显的东西 - 欢迎任何指针!
【问题讨论】:
-
看起来是正确的。您是否期望对文件中的反斜杠序列进行评估?
-
但这不是我想看到的。我想让 $line 的值也被“翻译”成 unicode 字符...
-
$line 和 $var 的初始值相同。为什么它们组合后的打印效果不同?