免费注册 查看新帖 |

Chinaunix

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

print函数里的疑问!(关于句号与逗号) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-27 14:42 |只看该作者 |倒序浏览
我是新手!!发现在print函数里,逗号与句号有不同用法.

如:
@a = qw “abc def ghi jkl”;
print @abc, “\n”;                # 结果是:abcdefghijkl
print @abc. “\n”;                # 结果是:4
print “@abc”, “\n”;        # 结果是:abc def ghi jkl
print “@abc”. “\n”;        # 结果是:abc def ghi jkl
print @abc. “@abc”, “\n”;  # 结果是:4abc def ghi jkl
print @abc. @abc, “\n”;        # 结果是:44
print @abc, @abc, “\n”;        # 结果是:abcdefghijklabcdefghijkl

结果是可以总结出来!!但我还是想知道其真正的解释!!!!

希望高手们请教!!!

论坛徽章:
0
2 [报告]
发表于 2006-11-27 14:53 |只看该作者
标量环境和列表环境

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2006-11-27 14:59 |只看该作者
呵呵,楼主你的问题和 print 一点关系都没有,和上下文有关。
Perl 的“上下文”是个很别致的概念,在很多编程语言中都没有,因此初学者容易在这里犯迷糊。
简而言之:
上下文就是表达式求值的“环境”,不同的上下文中,同一个表达式会有不同的运算结果。
就你这个帖子来说,涉及到的上下文有关的知识有:
1,字符串内插上下文中,数组变量会返回一个由 $" 连接在一起的,由所有元素组成的一个字符串。
2,小数点 . 字符串运算符,它强迫它的两个操作数在标量上下文中参与计算。
3,数组变量在标量上下文中,返回元素的个数。
4,数组变量在列表上下文中,返回由所有的元素组成的列表。
还有一个和 print 有关的知识就是:
5,print 给它的参数提供一个列表上下文,并且会逐个打印每个参数。
这样就很好解释了:
  1. @a = qw “abc def ghi jkl”;
  2. print @abc, “\n”;                # 结果是:abcdefghijkl 知识点 5 和 4
  3. print @abc. “\n”;                # 结果是:4                 知识点 5 和 2 和 3
  4. print “@abc”, “\n”;        # 结果是:abc def ghi jkl  知识点 5 和 1
  5. print “@abc”. “\n”;        # 结果是:abc def ghi jkl 知识点 5 和 1 和 2
  6. print @abc. “@abc”, “\n”;  # 结果是:4abc def ghi jkl 知识点 5 和 2 和 3 和 1
  7. print @abc. @abc, “\n”;        # 结果是:44                知识点 5 和 2 和 3
  8. print @abc, @abc, “\n”;        # 结果是:abcdefghijklabcdefghijkl 知识点 5 和 4
复制代码

论坛徽章:
0
4 [报告]
发表于 2006-11-27 15:00 |只看该作者
数组要看上下文的。
标题上下文打印数组的个数,数组上下文打印每个数组元素。
我觉得这个问题perldoc里是有的,关于数组介绍部分吧。

论坛徽章:
0
5 [报告]
发表于 2006-11-27 15:51 |只看该作者
谢谢各位!!!

!!哦!!!明白了!!!

谢谢!!!

论坛徽章:
0
6 [报告]
发表于 2006-11-27 16:39 |只看该作者
原帖由 flw 于 2006-11-27 14:59 发表
呵呵,楼主你的问题和 print 一点关系都没有,和上下文有关。
Perl 的“上下文”是个很别致的概念,在很多编程语言中都没有,因此初学者容易在这里犯迷糊。
简而言之:
上下文就是表达式求值的“环 ...


一个真正的数组变量还知道它的环境,处于列表环境时,它会象一个列表文本那样返回其内部列表。但是当处于标量环境时,它只返回数组长度。

print 给它的参数提供一个列表上下文,并且会逐个打印每个参数。


但有一点我还想问一下:

print @abc, “\n”;                # 结果是:abcdefghijkl
print “@abc”, “\n”;                # 结果是:abc def ghi jkl

为什么!!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2006-11-27 16:53 |只看该作者
操!
看知识点 1
$" 缺省值是一个空格

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2006-11-27 16:59 |只看该作者
原帖由 flw 于 2006-11-27 14:59 发表
呵呵,楼主你的问题和 print 一点关系都没有,和上下文有关。
Perl 的“上下文”是个很别致的概念,在很多编程语言中都没有,因此初学者容易在这里犯迷糊。
简而言之:
上下文就是表达式求值的“环 ...

坐下来慢慢学

论坛徽章:
0
9 [报告]
发表于 2006-11-27 17:05 |只看该作者
原帖由 flw 于 2006-11-27 16:53 发表
操!
看知识点 1
$" 缺省值是一个空格


论坛徽章:
0
10 [报告]
发表于 2006-11-27 17:09 |只看该作者
原帖由 flw 于 2006-11-27 16:53 发表
操!
看知识点 1
$" 缺省值是一个空格

版主?????????
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP