加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl语法总结

发布时间:2020-12-15 23:55:10 所属栏目:大数据 来源:网络整理
导读:以下是依据perlintro总结的Perl基本语法 Perl 语法-- by gouven 基本语法 与C一样地,每条语句以分号;结尾 注释符为# 操作符see perlop 算术:+ - * / 数值比较: = = == != 字符串比较: lt le gt ge eq ne 逻辑: and || or ! not 其他 . 字符串拼接 x 字符

以下是依据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','two');
          • %table = ( 1 => 'one',2 => 'two',);
        • 获取所有的key: keys @table
        • 获取所有的value: values @table
    • 变量作用域
      • 默认全局
      • 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
    • 函数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
      • 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读