初学perl

来源:互联网 发布:委内瑞拉经济危机知乎 编辑:程序博客网 时间:2024/05/19 22:45

  以前接触过perl一段时间,没用过,现在全忘了。刚又看了下perl,把基本知识总结一下:

1.单数变量用$前缀,数组用@前缀
定义数组:
    @aray = (1, '2', $var);
    $aray[4] = "ds";
   
2.可以数组交换赋值 ($a, $b) = ($b, $a);

3.复数变量包括数组和散列,数组是有序的,散列是无序的

4.散列用%前缀
定义散列:
    %hash = ("mon" => "monday", "sun" => "sunday");
或者%hash = ("mon", "monday", "sun", "sunday");
    $hash{"thu"} = "thusday";
取值:
    $hash{"mon"}
   
5.复杂数据结构;
  散列中的数组:$wife{"you"} = ["wife1", "wife2", "wife3"];
    访问:$wife{"you"}[0];
  散列中的散列中的数组:$wife{"you"} = {"wife1" => ["child1", "child2"], "wife2" => ["child3", "child4"};
    访问:$wife{"you"}("wife1"}[0];

6.函数:
  调用用户自定义函数的时候,前面可以加&也可以不加:$returnValue = &getUser();或者$returnValue = getUser();

7.标准输入输出: <STDIN> <STDOUT>
  $var = <stdin> 等待用户输入
 
8.操作符:
  +   数字相加
  .   字符串连接
  **  幂运算  2 ** 3为2的3次幂
  *   乘法
  x   重复  ‘a’x3 则a重复三次

9.任何过程都拥有返回值,所以可以在一个语句中多次改变同一个变量的值
  比如:   ($temp -= 32) *= 5/9;

10.文件测试操作符:
  -e 存在
  -r 可读
  -w 可写
  -d 目录
  -f 文件
  -T 文本文件

11.判断:
  if(){}elsif(){}else{} 必须有大括号
  unless(){}如果不是这样则执行括号中的语句

12.循环:
  while(){}为真则执行
  until(){}为假则执行
  for(){}for循环
  foreach $v (@array) foreach循环
  last和next 控制跳出循环:(例子)
    Line:foreach $a (@array){
        next Line if $a eq 1;
        last Line if $a == 2; 
    }

13.正则表达式:
  *在缺省状态下,Perl 量词都是贪婪的,也就是他们将尽可能多地匹配一个字符串中最大数量的字符
  while ($line = <FILE>) {
      if ($line =~ /http:/) {  #  符号=~ 是模式绑定操作符
         print $line;
      }
   }
   和
   while (<FILE>) {
      print if /http:/;
   }是一样的效果。
  *最小匹配:/.*?:/   加上问号?就表示是非贪婪匹配,取尽量小的字符串
  /b 单词边界
  ^和$匹配行首和行尾