私は次の小さなPerl(v5.10)プログラムを持っています:
use strict;
my @nums;
my $i = 0;
while ($i < 5) {
print "Enter number " . $i+1 . ": ";
$nums[$i] = <STDIN>;
$i++;
}
foreach (@nums) {
chomp $_;
print "$_\t";
}
print "\n";
これは、テスト実行の結果です。
1: 2
1: 1
1: 6
1: 3
1: 2
2 1 6 3 2
ご覧のとおり、問題は、ユーザーに入力を求めるprintステートメントが期待どおりに機能していないことです。「1番を入力してください」や「3番を入力してください」などの代わりに、「1:」を取得します。+演算子がPerlでの文字列連結のためにオーバーロードされていることを知っているので、これが正直に機能するとは思っていませんでした。この問題を回避するにはどうすればよいですか?そして、その理由は何ですか?