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

时间:2011-06-29 10:30:16

标签: perl

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

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

$in =  <<STDIN>> ;

print ($in) ;

你能否建议我为perl脚本提供优质的pdf谢谢你。

4 个答案:

答案 0 :(得分:6)

应该是:

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

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

答案 1 :(得分:5)

您应该<STDIN>而不是<<STDIN>>。后者被解析为heredoc(<<STDIN)作为右移操作的左操作数(>>),但右移没有正确的操作数,因此{{1}错误。

更新:除了perl首先抱怨没有找到指示heredoc结束的STDIN。 shell似乎正在执行代码而不是perl,unexpected ;是重定向,而不是右移。否则,上述内容仍适用。

答案 2 :(得分:2)

从STDIN文件中读取的正确语法是:

my $in = <STDIN>;

注意 - 只有一个一组尖括号。

答案 3 :(得分:2)

#line

该行告诉机器在执行文件时如何处理文件(即它告诉它通过Perl运行文件)。

<强> STDIN

应该是:my $in = <STDIN>;