Я изучаю Perl и написал этот сценарий, чтобы практиковаться в использовании STDIN. Когда я запускаю сценарий, он показывает только первый оператор печати на консоли. Независимо от того, что я ввожу, включая новые строки, консоль не показывает следующий оператор печати. (Я использую ActivePerl на машине с Windows.) Это выглядит так:
$perl script.pl What is the exchange rate? 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 работал нормально? Если это нормальное поведение, чего мне не хватает?