lrx182125 发表于 2017-5-16 12:27:25

perl概述

  1.perl不用声明变量类型,
  $ 声明单数标量,  (标量就是单数变量,数组和散列就是复数变量)
  @声明数组
  %声明散列
  &声明子例程
  * typeglob        *a  表示所有叫a的东西  
  2. “” 变量内插,也就变量替换  '' 取消内插 , `` 执行外部命令
  3.   标量也可以保存对其他数据结构的引用
  $ary =\@myarray ;
  $aryy=\%myhash;
  $ary=\&mysub;
  4.用数组可以给多个标量赋值
  @home=("a,","b","c","d");   #声明一个数组
  {$a,$b,$c,$d}=@home;
  数组是有序的;  散列是无序的标量,自动增长,以key/value形式存储,查找比较快
  散列:
  %myhash=("sun"=>"sunday","fri"=>"Friday"); 
  或者
  %myhash=("sun","sunday","fri","Friday")
  取值
  %myhas{"sun"}
  5.复杂的数据结构
  (1)将列表赋值给一个标量
  $wife{"jacbo"}=["a","b","c"];  这个标量是散列表的一个值 []能将一个列表转换成一个标量格式
  取值  
  $wife{"jacbo"}="a";
  $wife{"jacbo"}="b";
  $wife{"jacbo"}="c";
  $wife{"jacbo"}="d";
  对每个散列进行赋值
  $kids_of_wife{"jacob"}={"leach"=>["a","b","c","d"],
  "reach"=>["e","f"]},
  "bilha"=>["g","h"]
  };
  6.模块
  package Camel;
  $fido=&fetch(); 
  fido相当于 $Camel::fido
  &fetch()相当于&Camel::fetch
  使用其他模块 use Camel;
  7.用perl解释器执行
  perl -e 'print "Hello,world!\n"';
  有的解释器路径不支持32个字符 即 #!/usr/bin/perl不能超过32个字符,测试脚本也不能命名为test,unix系统内置test命令会优先执行。
  #!/usr/bin/perl -w #开启调试开关
  8.文件句柄
  open() 创建并关联一个文件
  open(SESAME,"filename") #从现有文件读取
  open(SESAME,"<filename") #同上,显示指定
  open(SESAME,">filename") #创建文件并写入
  open(SESAME,">>filename") #附加到现有文件后面
  读行操作符 <>来读一行
  chop() 不加区别的去除字符串最后一个字符,chomp 仅删除结束符\n标记,同时返回被删除的字符数
  9.比较操作符
  数字             字符串
  ==                 eq
  !=   ne
  <   lt
  >   gt
  <=   le
  >=   ge
  <=>   cmp
  -e $a 文件是否存在
  -r $a 文件是否可读
  -w $a 文件是否可写
  -d $a 文件是否是目录
  -f $a 是否是普通文件
  -T $a 是否是文本文件
  10. true or false
  除"" 和0 外,所有字符都为true;除0外,所有数字都是true;所有的引用都是true,所有未定义的值都是false
  11.内置函数
  sort(@my_array) #排序
  reverse(@my_array) #倒序
  join,split 合并拆分字符串
  $var = join(',',@my_array);
页: [1]
查看完整版本: perl概述