PERL CTRL-D没有停止用户输入
问题描述:
学习perl我发现在这种情况下CTRL + D不能停止用户输入。它在其他脚本中的工作可能是通过代码本身来实现的。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";
答
发现问题, For循环永远不会结束,第二我至极应该是$我的坏声明的原因,这把执行无限循环。
for ($i=0; i<=$max;$i++)
+0
或者:'为我$(0 .. $ max)' – tjd
“*任何东西似乎都适合我。*”......这太好了。现在,你的问题是什么? –
这与Perl无关。 Ctrl-D是一个操作系统的东西。在Linux和其他unix系统上,除非您重新配置密钥,否则在行的开始处的Ctrl-D将发送EOF信号。 Perl会从''返回这个信号。 –
ikegami
而且,在DOSish系统上,'CTRL-Z'信号EOF。 –