Я изучаю Perl и написал этот скрипт для практики с использованием STDIN. Когда я запускаю скрипт, он показывает только первый оператор печати на консоли. Независимо от того, что я печатаю, включая новые строки, консоль не показывает следующий оператор печати. (Я использую ActivePerl на компьютере с Windows.) Это выглядит так:
$perl script.pl
<b>What is the exchange rate?</b> 90.45
[Cursor stays here]
Это мой сценарий:
#!/user/bin/perl
use warnings; use strict;
print "What is the exchange rate? ";
my @exchangeRate = <STDIN>;
chomp(@exchangeRate);
print "What is the value you would like to convert? ";
chomp(my @otherCurrency = <STDIN>);
my @result = @otherCurrency / @exchangeRate;
print "The result is @{result}.\n";
Одно потенциальное решение, которое я заметил при исследовании моей проблемы, состоит в том, что я мог бы включить
use IO::Handle;
и
flush STDIN; flush STDOUT;
в свой сценарий. Эти строки не решили мою проблему.
Что мне делать, чтобы STDIN вел себя нормально? Если это нормальное поведение, что я упускаю?