关于数组Print的一个问题

关于数组Print的一个问题

偶突然发现一个问题,请看代码:

[Copy to clipboard] [ - ]
CODE:
my @a = (ab1, ab2, ab3, ab4, ab5, ab6, ab7, ab8, ab9, ab10, ab11);
print @a;
print "\n\n@a\n\n";

输出结果为:

QUOTE:
ab1ab2ab3ab4ab5ab6ab7ab8ab9ab10ab11

ab1 ab2 ab3 ab4 ab5 ab6 ab7 ab8 ab9 ab10 ab11

请问一下,为什么第2个print出来的数组各元素之间会有空格?
因为第一个 print 中的 @a 处于列表上下文。
第二个 print 中的 @a 处于字符串内插上下文。
谢谢斑竹的回复。
呵呵,刚搜到一个帖子,
是关于“perl常用内置变量”
我想看了之后大家都知道原因了吧,呵呵

QUOTE:
$"
$LIST_SEPARATOR,数组内插到双引号字符串中时所用的分隔符,
默认为空格



QUOTE:
原帖由 不死草 于 2008-6-19 14:03 发表
谢谢斑竹的回复。
呵呵,刚搜到一个帖子,
是关于“perl常用内置变量”
我想看了之后大家都知道原因了吧,呵呵

还有一个 $, 你也看看
然后在你的程序的第一个 print 之前加上:


[Copy to clipboard] [ - ]
CODE:
($,, $") = ($", $,);


再看看效果。
呵呵,谢谢斑竹,结果反过来了,呵呵。。。 又学到一招。。。

QUOTE:
$,
$OFS,或$OUTPUT_FIELD_SEPARATOR,用于print的输出字段分隔符,
即一个print语句中用逗号分隔的部分之间用什么分隔,默认为无