perl的理解

来源:互联网 发布:淘宝93sport怎么样 编辑:程序博客网 时间:2024/06/15 14:57

  ——但是我不能骗我自己,我天生就是一个伟大的程序员。——

      上面是今天学到的用来自我吹嘘调侃的话,超自信的调侃自我,有益身心健康,哈哈。

      在速递项目中接触到perl。perl 有两个显著的优点,一是强大的正则表达式,二是跨操作系统的可移植性。据温老师说后者是使得我们选择perl来进行ETL开发的主要原因,但我觉得第一点也是非常关键的。

      perl有3种变量,分别是标量$,数组@,哈希%。哈希从本质上来说可以是一种特殊的数组,可以说是一组键值对,为什么说是一组呢,因为一般单独不使用。通过关键字可以找到其对应的值。如$Authors('Dune')='Frank Herbert'Authors为哈希结构,'Dune'为关键字,''Frank Herbert'为其对应的值。

      perl封装了shell命令,在perl中有我们熟知的shell命令作为函数。这样比c,java,就要更接近底层了。

      perl可以执行外部的程序,通过system,``,反引号可以捕获输出,比如$directory = `ls`,而用system不能捕获输出,但可以通过重定向,管道之类的做到。

      perl强大的正则表达式使得perl特别适合处理文本。

      perl 语言是轻量级的,但任何的语言大家都似乎希望他能完成一些主流的操作。于是出现了模块,可以在perl脚本中嵌入use module即可,模块就是用perl写好的功能模块。

      perl中还有许多的默认变量,如$_,@_,可以用来解决实际问题的。我觉得这些默认变量应该是沿袭了linux shell,因为perl的发展就是在linux shell基础上。

      perl的学习我还是基础,如果要提高,是要做项目的。通过查阅文档和已有的代码做项目,是提高最快的方法。

      在学完一门重量级的语言,比如c,java,再来学习轻量级的perl,麻雀虽小,五脏俱全,加深了对语言功能的理解。语言功能的发展是为了解决实际工程中出现的问题。问题驱动着语言的发展。现在的perl发展已经很全了,所以在实际中碰到的困难,只要想想,总能在语言中找到它特定的解决方法。