关于数组Print的一个问题

不死草
关于数组Print的一个问题

偶突然发现一个问题,请看代码:
[code]
my @a = (ab1, ab2, ab3, ab4, ab5, ab6, ab7, ab8, ab9, ab10, ab11);
print @a;
print "/n/n@a/n/n";
[/code]
输出结果为:
[quote]
ab1ab2ab3ab4ab5ab6ab7ab8ab9ab10ab11

ab1 ab2 ab3 ab4 ab5 ab6 ab7 ab8 ab9 ab10 ab11

[/quote]
请问一下,为什么第2个print出来的数组各元素之间会有空格?

flw
因为第一个 print 中的 @a 处于列表上下文。
第二个 print 中的 @a 处于字符串内插上下文。

不死草
回复 #2 flw 的帖子

谢谢斑竹的回复。
呵呵,刚搜到一个帖子,
是关于“[b]perl常用内置变量[/b]”
我想看了之后大家都知道原因了吧,呵呵:mrgreen:
[quote]
$"
$LIST_SEPARATOR,数组内插到双引号字符串中时所用的分隔符,
默认为空格

[/quote]

[[i] 本帖最后由 不死草 于 2008-6-19 14:06 编辑 [/i]]

flw
[quote]原帖由 [i]不死草[/i] 于 2008-6-19 14:03 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=8620162&ptid=1164608][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
谢谢斑竹的回复。
呵呵,刚搜到一个帖子,
是关于“perl常用内置变量”
我想看了之后大家都知道原因了吧,呵呵:mrgreen:
[/quote]
还有一个 $, 你也看看

flw
然后在你的程序的第一个 print 之前加上:
[font=fixedsys][code]($,, $") = ($", $,);[/code][/font]
再看看效果。

不死草
呵呵,谢谢斑竹,结果反过来了,呵呵。。。:mrgreen: 又学到一招。。。
[quote]
$,
$OFS,或$OUTPUT_FIELD_SEPARATOR,用于print的输出字段分隔符,
即一个print语句中用逗号分隔的部分之间用什么分隔,默认为无
[/quote]