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

  • 相关阅读:
    UNP(2rd)第二卷源码编译
    A very hard mathematic problem
    并查集~
    N皇后问题 深搜dfs
    实践中的一点小问题
    java环境配置 HelloWorld
    精确时间计算方法
    C语言关于文件操作
    字典树应用~
    并查集应用2
  • 原文地址:https://www.cnblogs.com/emanlee/p/6854860.html
Copyright © 2011-2022 走看看