【发布时间】:2017-12-03 10:19:48
【问题描述】:
学习 perl 我发现在这种情况下 CTRL+D 无法停止用户输入。它在其他脚本中的工作因此可能与代码本身有关。
我在互联网上阅读有关 EOF 的信息,但似乎对我有用。
提前感谢您和最诚挚的问候。
#!/usr/bin/perl
print "Dime tus numeros\n";
@numb =<STDIN>;
$cua = 0;
$count = 0;
$array = "@numb";
$max = @numb; #tamaño array
$joined = join('',@numb); #metemos array en sacalar juntandolo sin espacios
$joined = $original; #guardamos el num original
$diff = 999 - $joined;
for ($i=0; i<=$max;$i++){ #es <= por que el arraylenght no empieza en 0
$sumatotal += $numb[$i]; #vamos sumando cada elemento del array
}
print "Has añadido los numeros $array. \n";
print "Combiandose en $joined que sumados entre si dan:$sumatotal \n";
print "La diferencia entre $joined y 999 es $cua\n";
【问题讨论】:
-
"任何东西似乎都适合我。" ...太好了。现在,你的问题是什么?
-
这与 Perl 无关。 Ctrl-D 是操作系统的东西。在 Linux 和其他 unix 系统上,除非您重新配置密钥,否则行首的 Ctrl-D 将发送 EOF 信号。 Perl 将通过从
<STDIN>返回来响应该信号。 -
而且,在 DOSish 系统上,
CTRL-Z发出 EOF 信号。
标签: perl user-input eof