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"}[0]="a";

$wife{"jacbo"}[0]="b";

$wife{"jacbo"}[0]="c";

$wife{"jacbo"}[0]="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);

你可能感兴趣的:(perl)