Этот Perl-код не работает, какую ошибку я делаю? - PullRequest
0 голосов
/ 29 июня 2011

Может кто-нибудь сказать мне, почему код ниже показывает ошибку. Я работаю на Perl.Я начал работать над perl прямо с 5 минут назад. Это моя первая программа на perl. Но она говорит, что синтаксическая ошибка неожиданна ';'Я написал код в точности так, как указано в book.but в чем проблема?

Ответы [ 4 ]

6 голосов
/ 29 июня 2011

Это должно быть:

$in = <STDIN>;
print ($in);

Кроме того, Modern Perl - отличный учебник.

5 голосов
/ 29 июня 2011

Вы должны иметь <STDIN> вместо <<STDIN>>.Последний анализируется как heredoc (<<STDIN) как левый операнд операции правого сдвига (>>), но правого операнда для правого сдвига нет, поэтому ошибка unexpected ;.

Обновление: за исключением того, что perl сначала жалуется на отсутствие STDIN, указывающего на конец heredoc.Кажется, что оболочка выполняет код вместо perl, а >> - это перенаправление, а не сдвиг вправо.В противном случае вышеизложенное все еще применяется.

2 голосов
/ 29 июня 2011

Строка #

Эта строка сообщает машине, что делать с файлом при его запуске (т. Е. Сообщает ему запустить файл через Perl).

STDIN

Должно быть: my $in = <STDIN>;

2 голосов
/ 29 июня 2011

Правильный синтаксис для чтения из глобуса файла STDIN:

my $in = <STDIN>;

Примечание - только один набор угловых скобок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...