免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2745 | 回复: 5
打印 上一主题 下一主题

关于数组Print的一个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-19 13:44 |只看该作者 |倒序浏览
偶突然发现一个问题,请看代码:

  1. my @a = (ab1, ab2, ab3, ab4, ab5, ab6, ab7, ab8, ab9, ab10, ab11);
  2. print @a;
  3. print "\n\n@a\n\n";
复制代码

输出结果为:
ab1ab2ab3ab4ab5ab6ab7ab8ab9ab10ab11

ab1 ab2 ab3 ab4 ab5 ab6 ab7 ab8 ab9 ab10 ab11

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

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2008-06-19 13:46 |只看该作者
因为第一个 print 中的 @a 处于列表上下文。
第二个 print 中的 @a 处于字符串内插上下文。

论坛徽章:
0
3 [报告]
发表于 2008-06-19 14:03 |只看该作者

回复 #2 flw 的帖子

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

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

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2008-06-19 14:33 |只看该作者
原帖由 不死草 于 2008-6-19 14:03 发表
谢谢斑竹的回复。
呵呵,刚搜到一个帖子,
是关于“perl常用内置变量”
我想看了之后大家都知道原因了吧,呵呵

还有一个 $, 你也看看

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2008-06-19 14:35 |只看该作者
然后在你的程序的第一个 print 之前加上:
  1. ($,, $") = ($", $,);
复制代码

再看看效果。

论坛徽章:
0
6 [报告]
发表于 2008-06-19 15:13 |只看该作者
呵呵,谢谢斑竹,结果反过来了,呵呵。。。 又学到一招。。。
$,
$OFS,或$OUTPUT_FIELD_SEPARATOR,用于print的输出字段分隔符,
即一个print语句中用逗号分隔的部分之间用什么分隔,默认为无
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP