这个perl代码不起作用,我犯了什么错误?

cod*_*ody 0 perl

任何人都可以告诉我为什么下面的代码显示错误.我正在研究perl.我从5分钟开始就开始研究perl.这是我在perl中的第一个程序.但是它的语法错误是意外的';' 我编写的代码正是书中给出的内容.但问题是什么?错误在哪里?

###!/cygdrive/c/dynasty/gcc/bin

$in =  <<STDIN>> ;

print ($in) ;
Run Code Online (Sandbox Code Playgroud)

你能为我推荐perl脚本的pdf,谢谢你.

Dha*_*dya 6

它应该是:

$in = <STDIN>;
print ($in);
Run Code Online (Sandbox Code Playgroud)

此外,Modern Perl是一个很好的教程.

  • @cody - 如果你在脚本的顶部有`use strict;`和`use warnings;`,那么你就会遇到这个问题. (4认同)

yst*_*sth 5

你应该<STDIN>而不是<<STDIN>>.后者被解析为heredoc(<<STDIN)作为右移操作(>>)的左操作数,但右移没有正确的操作数,因此unexpected ;错误.

更新:除了perl首先抱怨没有找到表明heredoc结束的STDIN.看来shell正在执行代码而不是perl,而且>>是重定向,而不是右移.否则,以上仍然适用.