perl 语言学习总结

1.#!/usr/bin/perl -w  内建警告信息,Perl发出警告
2.字符串 . 连接符
3.重复次数 "fred" x 3
4.字符串与数字之间的自动转换
5.$变量    赋值 $fred =17;   +  += *=  .=  not and or xor
6.print 输出
7.比较字符  数值 == != < > <= >=
       字符串 eq ne lt gt le ge
8. if($i < 0){}else{}  while(){}
9.chomp  去除字符串尾的一个换行符
10.数组 未初始化的数组值为undef
$#i表示最后一个元素的索引值   支持负数索引 最后一个为-1
11.qw 简写,省掉列表中的  , qw(1 2 3 412.@ all of the  数组的全部  
@rocks=qw/1 2 3/
@tiny = ( );
@gint = 1..1e5
@ee = ‘qwwewe’
13.pop和push  操作数组的最后一个元素  pop @array  push@array,8shift 和unshift  操作第一个元素
14.foreach $rock(@rock){}
15.$_老地方
16.reverse@fredsort@rock17,。强制上下文 scalar @rock
18.@lines = <STDIN>;
19.子程序 sub关键字  
eg:定义 sub fun{
        $n+=1;
        print "hello";
        &n;//最后一次运算结果为返回值    
    }
调用  &fun;  可以省略&print 语句的返回值为1,表示输出成功
函数参数:
$n = &max(10,15);
sub max{
    if($_[0]>$_[1]){
        $_[0];
    }else{
        $_[1];
    }
}

20.my 定义私有词法变量    @_全局变量
my 不使用括号时,只用来声明单个词法变量
sub max{
    my($m,$n);
    ($m,$n) = @_;//将保存在@_中的参数赋值给具体变量
    if($m>$n){$m} else{$n}
}

if(@_ != 2)  元素个数小于2   ???


适应任意参数的max程序
sub max{
    my($myx_so_far) = shift @_;
    foreach(@_){
        if($_ >$max_so_far){
            $max_so_far = $_;
        }
    }
    $max_so_far;
}

对于空参数返回undef
所有新变量一开始都是空的,标量被设为undef,数组被设为空列表
21.use strict 编译命令   让Perl更严格一些
要求一定要用my来声明每个新的变量
22. return 子程序立即返回
23. state  静态变量
24.输入输出
while(defined($line=<STDIN>)){
    print "I saw $line";
}
<>钻石操作 从用户指定的位置读取。
while(<>){
    chomp;
    print "$_";
}
25.@ARGV 命令行参数
26.copy("a","b") 将a拷贝成b
27.truncate (filename, length);
    将文件的长度减少到length字节。如果文件长度已经小于length,则不做任何事
28.seek (file,dis,relative_to) 文件中移动  relative(0 开头,1 当前,2末尾)
29.print 文件写入字符串  
30.unlink (filelist) 删除文件
31.open 
    1:读:open(文件句柄,"<文件名")/open(文件句柄,"文件名"),前提文件必须已经存在,否则会返回0,出错信息在$!中。
    2:写:open(文件句柄,">文件名"),文件如果不存在,那么创建之,如果存在,内容被清空,长度截为0,$!中有出错信息。
    3:追加:open(文件句柄,">>文件名"),基本同写,但有一点,文件中的内容不会被清空,新的内容会追加到原文后面。
    4:读写:open(文件句柄,"+<文件名"),通过“+<”模式,你可以既可以读文件,又可以写文件。你可以通过tell() 函数在文件内部移动,通过seek()函数进行定位。如果文件不存在,就会被创建。如果文件已经存在,原来的数据不会被清除。
         open(文件句柄,"+>文件名"),通过“+》”模式,可以同时读写文件,但与上面不同的是,它是破怀性写,会清除原来的内容。
    例子:
    my $conf = "D:/test.txt";

    if(-e $conf)  #判断文件是否存在
    {
        open(FILE, "<$conf") or die("No such file");
   
        while($LINE = <FILE>)         #读取文件
        {
            print $LINE;
               push(@del,$LINE);
         }
         close(FILE);

 

posted on 2015-11-23 13:35  zyz913614263  阅读(230)  评论(0编辑  收藏  举报

导航