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]," ";
    }

  • 相关阅读:
    js实现页面触摸滑动
    关于js中window.location.href,location.href,parent.location.href,top.location.href的用法
    eclipse tomcat 插件
    Eclipse中的Web项目自动部署到Tomcat的webapp目录下
    i=i+1与i+=1的区别及效率(Java)
    Java super和this
    Thinkphp
    单一静态网页如何实现点击左边菜单在右边展现内容
    dbda封装类(包括:返回二维数组、Ajax调用返回字符串、Ajax调用返回JSON)
    图片轮播代码
  • 原文地址:https://www.cnblogs.com/emanlee/p/6854860.html
Copyright © 2011-2022 走看看