Perl:为什么双引号在打印时会增加额外的空间?

时间:2012-07-19 11:02:37

标签: perl

我希望以下两张照片是相同的。

@a=(a..z);
print "@a\n";
print @a;

但实际上,它给了我这个:

a b c d e f g h i j k l m n o p q r s t u v w x y z
abcdefghijklmnopqrstuvwxyz

为什么要多余的空间?

我正在使用ActivePerl for Windows。

更新

通过以下2个答案,我提出了这个问题:

use English;
$LIST_SEPARATOR="*";
@a=(a..z);
print "@a\n";

它给了我这个:

a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z

3 个答案:

答案 0 :(得分:7)

请参阅perldoc perlvar

  • $LIST_SEPARATOR
  • $"
  

将数组或数组切片插入到双引号中   字符串或类似的上下文,如/.../,其元素是分开的   通过这个值。默认是一个空格。

答案 1 :(得分:7)

perldata中记录了这一点:

  

将数组和切片插入到双引号字符串中   使用$"变量中指定的分隔符连接元素   (如果指定了“use English;”,则为$ LIST_SEPARATOR),默认为空格。

答案 2 :(得分:4)

因为$"的默认值是空格,$,的默认值是空字符串。

您可以在perlvar中了解Perl的所有特殊变量。