Notes from PERL beginner-初学1

来源:互联网 发布:安徽省软件评测 编辑:程序博客网 时间:2024/06/06 20:43

最近因为工作需求的关系,开始学习了一些关于perl的知识。因为工作还没有正式开始,大部分的内容的笔记是学自Learning Perl,Learning Perl By Example。

文章主要是用来记录自学的过程。如果对于内容有不同的意见,欢迎讨论~~


1. Perl: 代表着 Practical Extraction and Report Language

2. Perl does not have Boolean type.

3.  在perl 当中, 每一个新的行(new line),会有 metachacter “\n”. 如果想要避免它的影响,可使用chomp. 例如 chomp($ input=<STDIN>)

4. Parenthesis (括号) 有时是可有可无的,例如数学算式。但是有时它又是必须的,如在regular expression 中:(a|b|c) 这里的括号,就不能省略。还有其他的例子。

5. defined()可用来测试变量是否是defined。

6. 在其他的语言当中, * 可以被视作乘法(multiplication)。但是在perl里,* 更多的时候被视为wildcard matching。所以 在perl里,x 被用作乘法符号,也可以用在string的打印上。

7.不同于在java当中,当使用list的时候,需要定义list的类型。在perl里,list可以包含scalar,list 还有hash。

8.perl为了简便用户输入element, 提供了 qw,无需使用separator还有引号,只需要给他开始和终结的符号,如: qw(a b c)。括号也可以换成别的符号。

9.当对于整个list进行操作的时候,应该使用,如: @sample_list=qw(1 2 3)

10. 对于list的操作,pop,从list里取得并去除最后一个element。$last_element=pop(@sample_list), 此时,sample_list里只含有 1 和 2.

11. 对于list的操作,push,添加新的element到target array的结尾。push @sample_list,6; , 此时,sample_list里只含有 1 和 2,6.  (当然也可以对多个元素进行操作)

12. 对于list的操作,shift 和pop有很大的相似之处,不过从list里取得并去除第一个element。$first_element=shift(@sample_list), 此时,sample_list里只含有 2 和 3. shift在对于script在接受arguement、parameter(参数)的时候也很有用处。 unshift和push的关系也是类似。

13. 对于list的操作,除去对于list的首尾进行操作,在list中间也可以进行操作。splice可以基于index和相对的length除去list里的element,同时在最后的parameter里进行element的assertion。 例如:splice@ array, 1, 5, qw( a b c), 除去list里的index为1和包括之后的5个元素,然后再把 a b c加入到index 为1的位置。

14. In subroutine. $_ is every index of the array, @_ is allparameters

15. printf在perl里也支持。因为普遍性就不在此解释了。

16.在perl里有一个概念是filehandle,对于文件的操作,是不可避免的。对于filehandle的定义方式,充分体现了perl的精神:There's more than one way to do it . 个人比较喜欢采用的方式如:OPEN(INPUT,"<",$input_file). 不要忘记在结束对于文件的操作之后进行关闭,如close(INPUT).虽然用户对于filehandle的命名有很大的自由程度,但值得注意的是有6个filehandle是perl reserved,用户应以避免使用。它们分别是: : STDIN STDOUT STDERR DATA ARGV ARGVOUT。


这是笔记的第一部分,后面的部分将陆续更新~~~

0 0
原创粉丝点击