Следующий сценарий предназначен для упражнений 4.6.4 при изучении Perl. «Обратный список» предлагается распечатать без использования reverse
.Почему предупреждение о «неинициализированной ценности»?
В то время как выход был вопросом, который задает вопрос, я получил предупреждение между входом и выходом, в котором говорится «Use of unitialized value in print at line 18, <> line 4
». Я думал, что я утверждал массив в line 10
. Почему я все еще получаю предупреждения?
1 #!/usr/bin/perl
2 #exercise4_6_4
3 use warnings;
4 use strict;
5
6 print "Type in your list: \n";
7 my $input =<>;
8 chomp $input;
9 my $i=0;
10 my @array;
11 while ($input ne "") {
12 $array[$i] = $input;
13 $input =<>;
14 chomp $input;
15 $i++;
16 };
17 while ($i !=0) {
18 print $array[$i],"\n";
19 $i--;
20 };
21 print "$array[$i]";
Запуск сценария показывает следующее:
Type in your list:
child
books
flight
Use of uninitialized value in print at exercise4_6_4.pl line 18, <> line 4.
flight
books
child
Кроме того, для дальнейшего использования ... это может быть хорошей идеей, чтобы получить возможность отправлять код без линии номера здесь на SO. :) – summea
«Неинициализированное значение» не означает необъявленный идентификатор, это означает 'undef'. Он не жалуется на '@ array' - массивы никогда не могут быть« неинициализированы », а скорее' $ array [$ i] '. – ruakh