连接需要Perl中的"空间"吗?

B C*_*hen 4 perl

没有从谷歌的问题上找到任何解释,虽然我可能没有使用正确的搜索词.

SCRIPT1:

#!usr/bin/perl
#concatenation2.pl
use warnings;
use strict;
print"Four sevens are",4*7 ,"\n";
print"Four sevens are".4*7 ."\n";
Run Code Online (Sandbox Code Playgroud)

SCRIPT2:

#!usr/bin/perl
#concatenation2.pl
use warnings;
use strict;
print"Four sevens are",4*7,"\n";
print"Four sevens are".4*7."\n";
Run Code Online (Sandbox Code Playgroud)

script1的输出是:

Four sevens are28
Four sevens are28
Run Code Online (Sandbox Code Playgroud)

好的,所以我(了解到)在关闭双引号之前需要一个空格.但是,script2的输出最终出现错误消息:

string found where operator expected at concatenate2.pl line 6, near "7."\n""
(Missing operator before "\n"?)
syntax error at concatenate2.pl line 6, near "7."\n""
Run Code Online (Sandbox Code Playgroud)

我无处可寻找解释为什么数字和数字之间需要有空格的原因.在script2中,虽然数字之间不需要空间,但我目前依靠谷歌和免费的perl书来帮助我学习语言.任何帮助(这种细微差别的一般准则)将不胜感激.谢谢.

Ant*_*nko 11

7.perl词法分析器的数字,就像3.1415926535.为避免混淆,请使用空格将点与前一个数字分开:"the answer is " . 4*7 . " times more complicated".

  • 正如他所说:),但要小心,同样的道理,.4也是perl的数字.但打印"四个七人组".4*7."\n"有效.尝试在.4之前加一个逗号,你会得到错误的结果.我的建议(一般指导原则)是将这些表达式括在括号"(4*7)"中 (7认同)
  • 我向上看了Manidip的评论,但是想要添加我自己的*不*通过括号将计算与打印文本分开是*草率*.实际上,你需要有一个空间的唯一地方是7和`.`之间 - 但良好的编程习惯会比你用来发现最小变化的试验和错误更快地击败你一个可行的解决方案. (4认同)