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。
这是笔记的第一部分,后面的部分将陆续更新~~~
- Notes from PERL beginner-初学1
- Perl Notes
- Some notes as a beginner.
- 初学perl
- perl初学
- perl初学
- 初学perl
- RCE from Beginner to Intermediate
- Perl Notes(I)
- Perl Notes(II)
- vim notes from myself
- Notes from Jing
- Notes from Data Guard
- Html Learning Note from a beginner
- Perl 初学指南
- 黑马程序员_css study notes(Sorted from w3cschool)1
- AngularJS notes -- from 《AngularJS权威教程》(1)
- Beginner
- 利用Android Studio创建AIDL并使用AIDL
- 利用Matlab绘制梯度图、散度图、旋度图
- 多线程基础
- 支付业务的数据库表的设计
- CSS3 渐变效果(20160827-0027)
- Notes from PERL beginner-初学1
- MyEclipse 使用 User Library 自定义自己的库
- 学习日记20160904
- 二分查找法
- RxJava Android 开发全家桶
- Java 多态
- 新版方案
- vcs编译systemverilog并且用verdi查看波形
- unity Invoke和InvokeRepeating