在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6461|回复: 9

[求助] [Perl] print中括号的使用

[复制链接]
发表于 2013-1-9 10:46:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 zongkai2003 于 2013-1-9 17:23 编辑

ch6.pl内容如下:

#!/usr/bin/perl
#use strict;
# use warnings;
chomp (@rocks = <STDIN>);
print "I have " , @rocks, " rocks!\n";
print "I have " , (reverse @rocks), " rocks!\n";
print "I have " , reverse @rocks, " rocks!\n";

执行结果如下:

D:\perl_tests>ch6.pl
a0
a1
^Z
I have a0a1 rocks!
I have a1a0 rocks!
I have  rocks!
a1a0

第三个print没加括号出来的结果和第二个不一样,为什么呢?

看明白了,第三个print语句中@rocks数组和后面的字符串组成了新的数组然后被翻转。
 楼主| 发表于 2013-1-9 10:48:35 | 显示全部楼层
回复 1# zongkai2003


    第三个print改成下面两句是对的:

@tmp = reverse @rocks;
print "I have " ,@tmp, " rocks!\n";
发表于 2013-1-9 22:44:50 | 显示全部楼层
Learning Perl里讲的很好,关于操作符的优先级问题,千万不要去研究。
第一,不必要,在不清楚运算符优先级与结合性时,可以通过加额外的括号进行控制。多几个括号几乎没有什么问题。
第二,不实用,代码写出来不是能够运行就可以。是要给人看的。有时是别人,有时是自己。别人可能并不清楚你所清楚的操作符的特性。即使是你自己,三到六个月之后可以也会忘记当时所清楚的操作符的优先级与结合性问题。如果写出难看(懂)的代码有什么好处的话,你可以去研究它。
发表于 2013-1-10 21:35:33 | 显示全部楼层
又学到点知识。谢谢
发表于 2013-1-11 10:23:13 | 显示全部楼层




   
非常赞同你的观点
发表于 2013-1-11 11:37:19 | 显示全部楼层
回复 3# mtvv


    真希望我的程序设计老师能看到并认同这些
发表于 2013-1-11 11:52:56 | 显示全部楼层
谢谢    分享   楼主
发表于 2013-1-11 22:25:10 | 显示全部楼层
大家都看看Perl best practice,  从一开始就要养成好习惯,

perl本身就是随意的语言,个人又按自己的风格来,到时候连自己都看不懂前面写了啥,别说靠别人来维护代码了,
发表于 2020-4-2 18:08:53 | 显示全部楼层
共同学习!!!
发表于 2020-4-2 20:20:48 | 显示全部楼层
感觉perl一开始自己就得写的规范一些,不然令人头秃。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-19 09:23 , Processed in 0.024417 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表