的行为。以及Perl中用于连接和解析的运算符

的行为。以及Perl中用于连接和解析的运算符,perl,parsing,concatenation,dot-operator,Perl,Parsing,Concatenation,Dot Operator,我试图在Perl中使用和,操作符,但得到了一些奇怪的东西,我无法理解: 如果我运行这个: print hello . this,isatest, program 输出为: hellothisisatestprogram 我能理解的是,它将点运算符前后的文本都视为字符串,并将它们连接起来 但是逗号呢?为什么它被省略而没有被连接?第一个句点()被视为连接运算符。后面的逗号分隔了打印的多个参数。结果是相同的-所有部分都连接在一起。如果要打印文字逗号,请将this,isatest,program括在

我试图在Perl中使用
操作符,但得到了一些奇怪的东西,我无法理解:

如果我运行这个:

print hello . this,isatest, program
输出为:

hellothisisatestprogram
我能理解的是,它将点运算符前后的文本都视为字符串,并将它们连接起来

但是逗号呢?为什么它被省略而没有被连接?

第一个句点(
)被视为连接运算符。后面的逗号分隔了
打印的多个参数。结果是相同的-所有部分都连接在一起。如果要打印文字逗号,请将
this,isatest,program
括在引号中-
“this,isatest,program”
以形成单个参数


我想这就是你想要的:

perl -e 'print "hello"." this,isatest,program"."\n"'

运行上述代码并检查输出。如果它提供了所需的输出,那么我想我们有一个解释。

启用strict和warnings(
使用strict;使用warnings;
)以消除字符串中的裸字。然后,考虑:
print“hello”、“thisistest”、“program”
,不使用
操作符-print
的行为是什么?好的,那么这与
操作符结合起来有什么意义呢?(请注意,有关特定操作员的问题,请先查阅参考/手册/教程-在这种情况下,请参阅
perlop
。还可以在
perlvar
中查找
,在
perlfun
中查看
打印
),始终使用
严格使用;使用警告