zoukankan      html  css  js  c++  java
  • perl概述

    [root@wx03 1]# cat a1.pl 
    $arr=[1,2,3,4,5,6];
    print $arr->[4]."
    ";
    $hash={a=>1,b=>2,c=>3};
    print $hash->{b}."
    ";
    $sub = sub {return "aaaaaaaaa
    "};
    print $sub;
    print "
    ";
    print &$sub;
    print "
    ";
    
    [root@wx03 1]# perl a1.pl 
    5
    2
    CODE(0x251fd20)
    aaaaaaaaa
    
    
    复杂数据结构:
    
    [root@wx03 1]# cat a2.pl 
    $wife{"Jacob"}=["Leah","Rachel","Bilhah","Zilpah"];
    print $wife{"Jacob"}->[2]."
    ";
    [root@wx03 1]# perl a2.pl 
    Bilhah
    
    [root@wx03 1]# cat a3.pl 
    $kids_of_wife{"Jacob"} = {  
    "Leah" => ["Reuben", "Simeon", "Levi", "Judah", "Issachar", "Zebulun"],  
    "Rachel" => ["Joseph", "Benjamin"],  
    "Bilhah" => ["Dan", "Naphtali"],  
    "Zilpah" => ["Gad", "Asher"],};
    print $kids_of_wife{"Jacob"}->{Rachel}->[1]."
    ";  
    [root@wx03 1]# perl a3.pl 
    Benjamin
    
    
    [root@wx03 1]# cat t1.pl 
    $var=5;
    $var .=10;
    print $var."
    ";
    
    [root@wx03 1]# perl t1.pl 
    510
    
    
    
    
    ///
    [root@wx03 1]# cat a5.pl 
    %grades;
    open (GRADES ,test) || die;
    while (my $line=<GRADES>){
    my ($student,$grade) = split (/s+/,$line);
    $grades{$student} .=$grade ." ";
    print $grades{$student}."
    ";
    };
    
    use Data::Dumper;
    $str=Dumper(%grades);
    print "$str is $str
    ";
    [root@wx03 1]# perl a5.pl 
    123 
    123 456 
    $str is $VAR1 = 'abc';
    $VAR2 = '123 456 ';
    
    [root@wx03 1]# cat test 
    abc 123
    abc 456
    
    perl 中的真值:
    
    1.除了""和"0"外,所有字符串都为true;
    
    2.除0以外,所有数字都为true;
    
    3.所有引用都为true;
    
    4. 所有未定义值都为false
    
    
    正则表达式:
    
    [root@wx03 1]# cat a7.pl 
    $var1="a:";
    $var2="aa:";
    $var3=":";
    if ($var1 =~/[a-zA-Z]+:/){print "ok1
    "};
    if ($var2 =~/[a-zA-Z]+:/){print "ok2
    "};
    if ($var3 =~/[a-zA-Z]+:/){print "ok3
    "};
    [root@wx03 1]# perl a7.pl 
    ok1
    ok2
    [root@wx03 1]# 
    
    + 是一个特殊字符,表示"我们前面的内容出现一次或多次"
    
    
    
    
    [root@wx03 1]# cat a8.pl 
    $var1="a";
    $var2="a1";
    if ($var1 =~/a./){print "ok1
    "};
    if ($var2 =~/a./){print "ok2
    "};
    [root@wx03 1]# perl a8.pl 
    ok2
    
    .号表示任意单个字符
    
    [root@wx03 1]# cat a9.pl 
    $var1="a1";
    $var2="1";
    $var3="aaa1";
    if ( $var1 =~ /a*1/ ){print "ok1
    ";};
    if ( $var2 =~ /a*1/ ){print "ok2
    ";};
    if ( $var3 =~ /a*1/ ){print "ok3
    ";};
    [root@wx03 1]# perl a9.pl 
    ok1
    ok2
    ok3
    
    * 表示前面的项出现0次或多次
    
    
    
    perl 贪婪匹配:
    
    
    [root@wx03 1]# cat a10.pl 
    $var="larry:abcdffwrwr:ddad:fsffsf34";
    if ( $var =~/(.+:)/){print "$1 is $1
    ";};
    if ( $var =~/(.*?:)/){print "$1 is $1
    ";};
    [root@wx03 1]# perl a10.pl 
    $1 is larry:abcdffwrwr:ddad:
    $1 is larry:
    
    
    .*? 取消贪婪匹配
    
    
    
    
    
    
    

  • 相关阅读:
    《梦断代码》阅读笔记01
    linux c netcdf 安装
    Windows CE中的进程和线程
    VC做任务管理器涉及到的函数
    curl_easy_getinfo() -- 从 curl 句柄里获得附加信息
    libcurl programming
    动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
    C++: byte和int的相互转化
    8位灰度图像BMP的保存
    BMP图像的结构及读写和灰度化
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350764.html
Copyright © 2011-2022 走看看