免费注册 查看新帖 |

Chinaunix

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

开始学习Perl [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-09 18:17 |只看该作者 |倒序浏览
学习Perl就像当年学习五笔,有兴趣了就学一下,过一段时间没有使用就忘了,过段时间又学一下,过段时间又忘记了....
今天又开始看小骆驼书,打算好好的学习一下Perl的语法,希望以后能多使用,不要再忘记了   (:

似乎Perl的语法结合了C和shell,比如,保留了C的{}和结束语句的';'(做为一门脚本语言,用';'结束语句是一个很让我崩溃的特性),而和shell差不多简洁.

有时候感觉学习的语言一多,就容易混乱。Perl就给我制造了一些类似的麻烦。
拿Perl和Python对比学习,发现了一些让人崩溃的地方。比如, print 'a', 'b', 'c', 在perl里是输出一个list,而在Python里是输出一个tuple.
习惯了print 'hello world', 要写成print "hello world\n"; 结果不是忘记添加'\n', 就是忘记了结尾的';'。都改完了才发现还要将单引号改成双引号...   )-:

其他的对比:
Perl: print "hello world";          = Python: print 'hello world',
Perl: print "hello world\n";       = Python: print 'hello world'
perl: say 'hello world';             = Python: print 'hello world'
Perl: 'abc' x 3                          = Python: 'abc' * 3
perl: print 'a' . 'b' . 'c';              = Python: print 'a' + 'b' + 'c',
Perl: print 'a' . ' ' . 'b' . "\n";     = Python: print 'a', 'b'
Perl: print "hello $var\n";        = Python: print "hello", var
还有一些,就不列举了。

不管怎样,还是要坚持下去, 呵呵

[ 本帖最后由 chunchengfh 于 2009-1-9 18:21 编辑 ]

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
2 [报告]
发表于 2009-01-09 18:30 |只看该作者

回复 #1 chunchengfh 的帖子

支持楼主坚持下去

论坛徽章:
0
3 [报告]
发表于 2009-01-09 21:34 |只看该作者

回复 #1 chunchengfh 的帖子

坚持就对了

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2009-01-09 23:52 |只看该作者
最好不要老是和你熟悉的其他语言类比,比这还糟糕的就是把  Perl 当作你熟悉的语言 XXX(填入你熟悉的语言的名字)来使。

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
5 [报告]
发表于 2009-01-10 00:08 |只看该作者
原帖由 MMMIX 于 2009-1-9 23:52 发表
最好不要老是和你熟悉的其他语言类比,比这还糟糕的就是把  Perl 当作你熟悉的语言 XXX(填入你熟悉的语言的名字)来使。

他这么一比较,我顺便学了点python

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
6 [报告]
发表于 2009-01-10 09:30 |只看该作者
一起学习。。坚持   。。

论坛徽章:
0
7 [报告]
发表于 2009-01-10 14:02 |只看该作者
原帖由 ynchnluiti 于 2009-1-10 00:08 发表

他这么一比较,我顺便学了点python

同感。

论坛徽章:
0
8 [报告]
发表于 2009-01-10 23:41 |只看该作者

继续...

觉得学语言有两种方式:1,忘记别的所有语言,沉浸在当前所学的语言中;2,对比,求同存异。两种方式各有优缺点吧,不过似乎后者更有意思一点,呵呵

继续比较:
perl中的变量在赋值前即可使用,这一点与shell以及awk类似;而Python则会报错,因为Python拒绝含糊。
perl从<STDIN>中读入的行会带有一个'\n'字符,所以几乎总是必须用chomp函数处理;shell/Python等绝大部分语言都没有这个特点。
Perl中,@array的元素数目为$#array+1, 而shell中, $#为函数的参数数目;Python中没有对应的表示,必须通过函数len(array)。
Perl中,假设@array的元素数目为100,则$array[-200]错误,这一点与Python相同。
Perl中的list的表示与Python中的tuple相同。Python中的list用[ ]表示。
Perl: (1, 2, 3)       = Python: [1, 2, 3]
Perl: (5..10)         = Python: range(5, 10+1)

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
9 [报告]
发表于 2009-01-11 00:32 |只看该作者
原帖由 chunchengfh 于 2009-1-10 23:41 发表
1,忘记别的所有语言,沉浸在当前所学的语言中

我不想忘,往往真的忘了

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
10 [报告]
发表于 2009-01-11 11:55 |只看该作者
原帖由 ynchnluiti 于 2009-1-11 00:32 发表

我不想忘,往往真的忘了

不要过于执着于语法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP