私はPerlを使い始めました。ユーザーに単語を入力させたいプログラムを作成しています。ユーザーが空文字列を入力すると、プログラムは終了します。ユーザが空の文字列を入力した場合に入力と終了を促す方法は?
これは私がこれまで持っているものです。
print "Enter a word to look up: ";
chomp ($usrword = <STDIN>);
私はPerlを使い始めました。ユーザーに単語を入力させたいプログラムを作成しています。ユーザーが空文字列を入力すると、プログラムは終了します。ユーザが空の文字列を入力した場合に入力と終了を促す方法は?
これは私がこれまで持っているものです。
print "Enter a word to look up: ";
chomp ($usrword = <STDIN>);
あなたはほとんどそこにいます。
print "Enter a word to look up: ";
my $userword = <STDIN>; # I moved chomp to a new line to make it more readable
chomp $userword; # Get rid of newline character at the end
exit 0 if ($userword eq ""); # If empty string, exit.
ファイル出力はデフォルトでバッファリングされます。プロンプトが非常に短いので、出力バッファにまだ座っています。 STDOUTでバッファリングを無効にするには、印刷前にこのコード行を追加します。
select((select(STDOUT), $|=1)[0]);
優れた答えです。 0とeqの意味は何ですか?私はeqが等しいことを意味することを意味するが、0 – NewLearner
[これはちょうど終了ステータスです](http://perldoc.perl.org/functions/exit.html) – resmon6
私はちょうどこれを試しました。しかし、私は印刷物がSTDINからの読み込みの前に必ず実行されるわけではないことを知っています(言い換えれば、プログラムはそれなりの理由で停止したように見えます)。 – John