2017-06-29 3 views
-3

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"; 
+1

「私にとっては何かがうまくいくように思える」*「...素晴らしいです。今、あなたの質問は何ですか? –

+3

これはPerlとは関係ありません。 Ctrl-DはOSのことです。 Linuxやその他のUNIXシステムでは、キーを再設定しないかぎり、行頭のCtrl-DはEOF信号を送信します。 Perlは ''から戻ってその信号に応答します。 – ikegami

+1

DOSISHシステムでは、 'CTRL-Z'はEOFを通知します。 –

答えて

0

、Forループ は私がWICH秒の悪い宣言の原因は、これが無限ループで実行を入れ、$ Iでなければなりません決して終わりません。

for ($i=0; i<=$max;$i++) 
+0

また、 'for my $ i(0 .. $ max)' – tjd

関連する問題