Как можно еще остановить чтение из <STDIN> в массив?
Задача. Напишите программу, читающую список строковых значений, каждое из которых находится в отдельной строке входных данных. Элементы списка выводятся в обратном порядке.
my @lines;
while (<STDIN>) {
chomp;
push (@lines,$_);
last if ($_ eq "exit");
}
@lines = reverse @lines;
my $i = 0;
while ($i < scalar @lines) {
print @lines[$i] . "\n";
$i += 1;
}
Вопросы:
- Как остановить чтение из
<STDIN>
в массив ? (если не задать условие остановки явно не получается остановить чтение...) - Остановка чтения из
<STDIN>
задается с помошью условиеlast if ($_ eq "exit")
, если не задать то чтение продолжается и если нажать CTRL-Z то останавливается но введенные строки в массив не выводятся, как можно это решить ? - Когда ввести строку
"exit"
для остановки чтения из<STDIN>
, то в массив эта строка записывается, как можно этого избежать ?
Конечно можно решить 2 вопрос так: pop(@lines)
, если есть другие варианты был бы рад почитать... :-)
Спасибо за внимание!