Perl

重拾 Perl

最近,我开始重新学习 Perl,尝试用 Perl 来完成日常的开发程序。

原因是前几天听第 27 期内核恐慌时,主持人提到了 Perl 6。然后吴涛说起 Perl 时,感情很复杂。我当时心想,我对 Perl 的感情也很复杂咯。首先是对今天的程序员来说,Perl 太原始了,与 Python 和 Ruby 等语言相比,更显古老。回想起来,自从我学习了这两种语言后,我就再没有正儿八经用 Perl 写过程序。而我真正有了属于自己的电脑,是在 2007 年,那个时候我正好开始学习 Python,之后就没有碰过 Perl。

想写一个类似co.mments的东西

co.mments关闭了好长时间了,我的Safari书签栏上还留着它的添加书签。我一直讶异目前市场上没有这类工具,相反,印象里coComment似乎挺火的。我在最早的时候分不清co.mments和coComment,后来发现coComment提供的是插件,非常麻烦,而且似乎还无法达到我的要求。同时我一直觉得co.mments这个工具应该是人人都喜欢的,因此当开发团队说要关闭这个服务时,我着实的吃惊了一把

写短文对我来说比较困难

基本上自从我开始写blog一来,我就很少写短文(指字数在200~300字的小文章)。而常常在其它的blog上看到有人用100字就可以写一篇比较精彩的文章了,还是比较羡慕的。短文对于非职业blogger们是有好处的。在可以表达清楚的情况下,文章写的越短,写blog所花的时间越少。这样就相当于节省了很多时间、获得了更高的效率。

对脚本语言的感觉

今天上午考完了《面向对象》这门课,往后一段时间就不用再接触继承(这还好)、Shadowing、Refinement、Overloading之类的概念了。相对来说我还是更喜欢可以快速开发的脚本语言的。

从Twitter更新校内状态成功!

继续上篇文章,紧天吃午饭的时候觉得那里说的两种方向都不太容易解决。Python的那个最诡异,实在不知道是哪里的问题,而且Python那个脚本,用了几个库,好像我目前手上能用的虚拟主机上(Dreamhost和SDF)都没有;Bash的那个,我实在是不想把目前的宝贵时间花在学习一门新语言上。然后就想到了我过去最喜欢的Perl,既然它被称为是一门“粘合语言”,应该在里面可以直接调用yegle写的wget语句,而且前两天用Perl写过海词客户端简化版,里面就用了正则表达式来处理了HTML。相对与海词的那个排版混乱的HTML输出,Twitter给的XML可简单清晰多了。

我不知道Perl里怎么解析XML,不过Twitter的XML很简单,我几下就弄出了需要的最新的tweet文本和那一条tweet的时间。然后用yegle的wget语句提交,一下子就成功了。然后就发现了一个困扰了我长时间的问题:如果tweet里面是中文,就无法提交(实际上是提交了一个空信息)。然后让程序打印初那条tweet的文字,发现都成了写这样的东西,然后就到处研究怎么把它转换成正常的文字。后来从这里知道了需要用HTML::Entities来处理(代码里第38行)。做了这一步后那些wget语句就又好使了。

海词客户端简化版

嫌在浏览器里用海词太麻烦,写了个Perl脚本来提取单词的解释。使用时把单词通过参数送进去就OK了。支持词组。查无此字时理论上不会有输出。

没有使用任何“高级”技术。通过LWP模块把网页弄下来,找到解释所在的位置,通过正则表达式提取出来就差不多了。本来想连例句一起弄出来,但只能做到一条例句的情况,如果例句多了只能显式第一条。如何完美的显式所有例句,还需要再想办法。