perl语法总结
来源:互联网 发布:冰与火之歌第七季 知乎 编辑:程序博客网 时间:2024/05/22 13:19
以下是依据perlintro总结的Perl基本语法
- Perl 语法-- by gouven
- 基本语法
- 与C一样地,每条语句以分号;结尾
- 注释符为#
- 操作符see perlop
- 算术:+ - * /
- 数值比较:< <= > >= == !=
- 字符串比较: lt le gt ge eq ne
- 逻辑: && and || or ! not
- 其他
- . 字符串拼接
- x 字符串“乘法”
- .. 范围操作符,用于创建一组数字
- = 赋值
- 支持操作符与=组合,如 += x=
- 数据类型see perldata
- scalar
- 变量使用美元符$进行引用,如$name
- 分类
- 字符串
- (双引号支持变量解析及特殊字符如\n):"abc", 'abc';
- 双引号内支持变量解析,以及特殊字符如 \n;
- 支持“乘法”表示:'a' x 3 等同于'aaa';
- 数值
- 整形:123, -12
- 浮点:1.23
- 引用(reference)see perlreftut, perlref
- 字符串
- array
- 变量使用 @名字 表示,如@array
- 组内元素类型可以混合
- $#array 表示最后一个元素到下标
- @array 在scalar上下文中表示数组元素个数,如 if(@array < 10) {}
- 数组元素使用使用$+数组下标(从0开始)进行引用,如$name[0]
- 初始化: @num = (1,2,3);
- 内置函数
- sort @a 返回排序后到数组
- reverse @a 返回倒序后到数组
- hash
- 变量使用 %table 表示
- hash值使用 $table{'key'} 表示
- 初始化
- %table = (1, 'one', 2, 'two');
- %table = ( 1 => 'one', 2 => 'two',);
- 获取所有的key: keys @table
- 获取所有的value: values @table
- scalar
- 变量作用域
- 默认全局
- my声明到作用域在{}内,如if() {my $foo = 1;}
- 分支 & 循环see perlsyn
- if
- if(cont){} elsif(cont2) {} else {} #必须有{}
- print 'foo' if $bar;
- unless
- unless(not_true) {};
- print 'foo' unless $bar;
- while
- while(its_true) {}
- print 'foo' while its_true;
- until
- until(its_false) {};
- print 'foo' until its_false;
- for
- for($i = 0; i < 10; $i++) {}
- foreach
- foreach (@array) {print $_;} #实际是foreach $iter (@array) {print $iter;}
- print "$_\n" foreach 1 .. $max; #每次获取到放在$_,不支持放到其他变量中
- foreach my $key (keys %table) {print "$key : ${$key}\n";}
- 总结
- 关键字在前的,需要把条件放在()中;关键字在后到,不需要{}
- 不支持switch/case
- if
- 函数sub
- sub your_sub_name { my (arg1, arg2) = @_; return $retval;}
- 函数参数在数组 @_ 中
- 无return时返回值为最后一个表达式到值
- 文件操作
- 打开
- open(my $in, '<', 'file.txt'); # to readopen my $in, '<file.txt'; #another way
- open(my $out, '>', 'file.txt'); # to read
- open(my $append, '>>', 'file.txt'); # to append
- 读
- my $line = <$in>; # scalar context
- my @all_lines = <$in>; # list context
- while(<$in>) {print "line: $_\n";}
- 写: print $out, "feed some text";
- 关闭: close $in; close $out;
- 打开
- regex
- 判断匹配
- if(/foo/) {} # if $_ contains 'foo'
- if($bar =~ /foo/) {} # if $bar contains 'foo'
- 简单的字符串替换
- s/foo/bar; # replace foo with bar in $_;
- $line =~ s/foo/bar; # replace foo with bar in $line;
- more details in perlrequick, perlretut, perlre
- 判断匹配
- 模块
- MyModule.pm #文件名以大写开头,扩展名一般为pm
- MyModule.pm内容
- package MyModule;
- 声明命名空间,名字必须与文件名相同
- use strict;
- see http://perlmonks.org/?node_id=102347
- package MyModule;
- perl -V #查看当前perl配置,包括@INC数组
- perl -I/path/to/module/testd xxx.pl #临时添加模块目录到@INC
- 学习资料
- man perl会提供各种perldoc指引说明
- perldoc
- perldoc perldoc
- perldoc perltoc
- perldoc -f func
- perldoc -q regex
- 社区
- www.perl.org
- www.cpan.org
- www.perlmonks.org
- 其他
- 良好的编码风格/习惯
- use strict;
- use warnings;
- 良好的编码风格/习惯
- 基本语法
Perl 语法-- by gouven//mm2html.xsl FreeplaneVersion:freeplane 1.3.0
0 0
- PERL 基本语法总结
- perl语法总结
- Perl 的简单语法
- Perl的简单语法
- Perl 语法简介
- Perl 基本语法
- Perl 基本语法1
- perl -- 子过程-->语法
- perl基本语法
- perl基本语法介绍
- Perl基本语法
- Perl cgi编程语法
- perl 基本语法
- perl 简单语法积累
- perl 基本语法介绍
- perl 基本语法
- Perl 语法简介
- perl基础知识03【语法】
- 编译Linux内核
- Django错误集之NameError at和TypeError
- HDU 2066 一个人的旅行(最短路的简单题)
- 栈 与 堆 的区别及其探讨
- 学生管理系统——修改部分
- perl语法总结
- jQuery 遍历 - 同胞
- 菜鸟进军c++(一)
- python 并发执行
- Heritage(高精度)
- 杭电Let the Balloon Rise
- oracle 通过with字句更新另一个表
- Android聊天表情开发
- 测试