王英珍

不积硅步,无以至千里;不积小流,无以成江河

大骆驼读书笔记

08 Jul 2017 »

perl 读书笔记

大骆驼读书笔记

第一章 perl概述

  • 列表转换为标量

      用[]来实现这个功能,不能直接用();
      #!/usr/bin/perl -w
      use strict;
      use warnings;
      my %hash;
      $hash{"a"}=["b","c","d"];
      print $hash{"a"}[0];
    
  • 散列转换为标量

      用{}来实现
      #!/usr/bin/perl -w
      use strict;
      use warnings;
      my %hash;
      $hash{"A"}={"A1"=>["A11","A12","A13"],"A2"=>["A21","A22","A23"],"A3"=>"A31","A32","A33"};
      print $hash{"A"}{"A1"}[0];
    
  • 文件句柄

      STDIN 是我们程序的标准输入,STDOUT 是标准输出。STDERR是一个额外的输出途径,这样就允许你在将输入转换到你的输出上的时候进行旁路。
    
  • 文件测试操作符

      -d $a 测试$a中命名的文件是否为目录
          example: mkdir "./bwa" unless (-d "./bwa");
      -e $a 测试$a中命名的文件是否存在
          example:unless (-e "./a1.R1.fq"){operate} #如果不存在a1.R1.fq这个文件就执行{}内的操作
    
  • 真真假假

      - 除了""和"0",所有字符串为真
      - 除了 0,所有数字为真
      - 所有引用为真
      - 所有未定义的值为假
    
  • 程序控制

    • if 和 unless

      if 后为真 则往下执行;
      unless 后为假则往下执行;可以理解为unless后为真,啥也不做;为假执行后边的。
      
    • 循环while和untill

      类似于if和unless,首先,检查条件部分,如果条件满足(while 语句是真, until 是假),执行后面代码
      
    • for

    • foreach

第二章 集腋成裘

  • shift用法(取出数组第一个元素,并缩减数组)

      #!/usr/bin/perl -w
      use strict;
      use warnings;
      my @arr=(1..5);
      print shift @arr;
      print  scalar @arr;
    
      @ARGV = ('-') unless @ARGV; # 若为空则假设为STDIN
      while( @ARGV) {
          $ARGV = shift @ARGV; # 每次缩短@ARGV
          if( !open(ARGV, $ARGV)) {
              warn "Can't open $ARGV: $!\n";
              next;
          }
          while (<ARGV>) {
              ... # 处理每行的代码
          }
      }
    
  • chdir $path(指定用户工作路径,相当于unix的cd)


Author: 王英珍
qq: 296085360
email:wangyz666@outlook.com