- ベストアンサー
Windows 用 Emacs で、shell で困ってます
perl のプログラムを、Emacs の shell で実行すると,打ったコマンドが、次の行に現れて、プログラムがうまく動いてくれません。たとえば、 print "Enter a first number: "; chomp($one = <STDIN>); の部分が、プリントされないのです。何も表示されてないところへ、数を入力すると、最後にまとめてプリントされます。 Emacs をカスタマイズすれば直るものでしたら、嬉しいんですが。 ちなみに、perl は、Active Perl です。 どなたか、わかる方がおられましたら、ご教示願います。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
perlが標準出力をバッファリング(ある程度溜め込んで暇なときに一気に書き出す)しているのでそうなります。 確かに、入力待ちメッセージなどのときはわずらわしいですね。 ぱっと思いつく解決法は以下の2つです。 1.改行(\n)を入れる 2.バッファリング設定を「バッファリングしない」に変更(特殊変数 $| に数値0以外の値を格納)
お礼
おっしゃるとおりに、$|=1; としてやると、見事に解決しました。ありがとうございました。ところで、どうしたら、あなたのように、難しい知識が身に付けられるのですか? これからも、よろしくお願いします。