【发布时间】:2016-07-21 16:21:40
【问题描述】:
我正在 Mac 上编写一个简单的 perl 脚本,它将一堆单词放在单独的行中并将它们打印出来:
#!/usr/bin/perl -w
use strict;
select STDERR; $| = 1;
select STDOUT; $| = 1; # auto flushing
my %count;
print "Please type in a series of words in seperate lines and ends with Ctrl+D.\n";
chomp(my @series = <STDIN>);
# print "\n";
foreach my $name (@series){`
print "$name\n";
}
这是输入:
a
a
b
(ctrl+D)
我注意到在我完成输入并按 ctrl+D 后,我在终端中看到了这个:
aD
a
b
我认为的原因是因为终端也回显了没有“\n”的^D,当我的程序打印出输入时,它会踩到^,留下我看到的aD(你可以通过取消注释来检查这个第 8 行中的 print "\n")所以我想我要问的是我应该怎么做才能防止终端回显 ^D?
【问题讨论】: