zoukankan      html  css  js  c++  java
  • perl入门知识(3)

    引用
           在很多场合下使用引用传值,能在很大程度上提高代码的运行效率。
           定义一个引用在变量名前加””就可以了,如:
           $ra=$a;
           $rb=@b;
           $rc=%c;
           变量名前面依然是$。
            而得到的引用是不能直接当做变量使用,需要解引用。解引用的方法是在变量名前加上变量原本类型所对应的符号。比如$rb是对一个数组的引用,那为了得到数组,就可以使用@$rb来得到整个数组。可以通过两种方式访问数组中数据,一种是$$rb[1],另一种是使用“->”符号$rb->[1]。明显第二种方式更加简洁。对哈希的操作类似$$rc{a},$rc->{a}。

    匿名存储
            匿名数据结构也是经常用到的,比如在useragent的post方法中会传递一个匿名的hash表。
            匿名数组的创建不再是使用(),而是[];同样匿名hash使用{}创建,而不是()。
            注意,它返回的是引用!
            $ra={'a'=>1,'b'=>2};
            $ra->{a}=3;
            print $$ra{a};

    特殊用法
    $str = 'my name';
    $strstr='your name';
    echo "${str}str is hello"; //my namestr is hello
    echo "$strstr is hello"; //your name is hello
    echo "$strabc is hello"; // Undefined variable: strabc in
    {}的作用是限制变量名

    sub函数(过程)

    基本sub格式
    sub subname{             
        local ($filevar) = @_;           
        local ($s1, $s1);
        ...
        …
        }  
        
    &subname;   #调用加&
    do my_sub(1, 2, 3); #另一种调用方式:do调用,等价于&my_sub(1, 2, 3);

    基本的sub参数传递
    实际是将参数@_赋值给局部变量
    sub参数的两种表示方式:
    整体形式(数组形式)   @_   
    单独形式(数组元素形式)  $_[ ]

    #!/usr/bin/perl
    &gotest("stringgogo",1,3,"4test");

    sub gotest{
        local($tmp1,$tmp2,$tmp3,$tmp4)=@_; #或my(@tmp)=@_;
        print "no.1 para is ",$tmp1," ";
        print "no.2 para is ",$tmp2," ";
        print "no.3 para is ",$tmp3," ";
        print "no.4 para is ",$tmp4," ";
    }  


    #!/usr/bin/perl
    &gotest("stringgogo",1,3,"4test");

    sub gotest{
        print "no.1 para is ",$_[0]," ";
        print "no.2 para is ",$_[1]," ";
        print "no.3 para is ",$_[2]," ";
        print "no.4 para is ",$_[3]," ";
    }

  • 相关阅读:
    Ubuntu下一个openldapserver部署步骤
    秀球技:倒和其他无用
    POJ1201-Intervals(差动限制)
    Scrapy研究和探索(七)——如何防止被ban大集合策略
    word 一些有用的技巧
    Java设计模式偷跑系列(十二)组合模式建模和实现
    Sql使用视图(简单的视图)适合入门-level
    cocos2d 缓存池 对象的再利用
    txt 开关 csv 可通用 工具
    使用SharePoint创建和定义自己的网站页面
  • 原文地址:https://www.cnblogs.com/emanlee/p/6854860.html
Copyright © 2011-2022 走看看