引用
       在很多场合下使用引用传值,能在很大程度上提高代码的运行效率。
       定义一个引用在变量名前加”\”就可以了,如:
       $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,"\n";
    print "no.2 para is ",$tmp2,"\n";
    print "no.3 para is ",$tmp3,"\n";
    print "no.4 para is ",$tmp4,"\n";
}

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

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

perl入门知识(3)的更多相关文章

  1. perl入门知识(2)

    交互式编程你可以在命令行中使用 -e 选项来输入语句来执行代码,实例如下:$ perl -e 'print "Hello World\n"'输入以上命令,回车后,输出结果为:Hel ...

  2. perl 入门知识(1)

    <一> 语句及注释: Perl 语句以分号(;)结尾,用 # 作为一行的注释,没有其它语言中那种跨行的注释.代码块用大括号围起来,这个和 C 类似,但这个大括号在有些地方是强制要求,如在 ...

  3. Python基础入门知识

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  4. [置顶] Mysql存储过程入门知识

    Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...

  5. 移动H5开发入门知识,CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  6. H5移动端开发入门知识以及CSS的单位汇总与用法

    说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid a ...

  7. Java web 入门知识 及HTTP协议详解

     Java  web  入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...

  8. Java基础入门知识

    Java编程入门知识   知识概要: (1)Java入门基本常识 (2)Java的特性跨平台性 (3)Java的编程环境的搭建 (4)Java的运行机制 (5)第一个Java小程序入门 (1)Java ...

  9. zabbix入门知识

    zabbix入门知识 zabbix中文手册 https://www.zabbix.com/documentation/3.4/manual/ 1.zabbix介绍 Zabbix 是一个企业级的分布式开 ...

随机推荐

  1. kubernetes实战(二十):k8s一键部署高可用Prometheus并实现邮件告警

    1.基本概念 本次部署使用的是CoreOS的prometheus-operator. 本次部署包含监控etcd集群. 本次部署适用于二进制和kubeadm安装方式. 本次部署适用于k8s v1.10版 ...

  2. Django单元测试简单示例

    对一个功能的验证往往是需要很多多测试用例,可以把测试用例集合在一起执行,这就产生了测试套件TestSuite 的概念,它是用来组装单个测试用例,规定用例的执行的顺序,而且TestSuite也可以嵌套T ...

  3. .NET基于分页控件实现真分页功能

    下面利用分页控件实现分页功能.分页控件下载网址:http://www.webdiyer.com/ 从该网址下载AspNetPager.dll后,在VS2008中在工具箱中,右键 —> 选择项 — ...

  4. mysql 内置功能 视图 使用

    #语法:CREATE VIEW 视图名称 AS SQL语句 增加了一张表 mysql> create view course2teacher as select * from course in ...

  5. 前端 HTML标签介绍

    那什么是HTML标签呢? 1. 在HTML中规定标签使用英文的的尖括号即"<"和">"包起来,如`<html>`.`<p>` ...

  6. PHP DB 数据库连接类

    近期观看了一节 PHP 消息队列视频,对于讲师WiconWang提供的代码,在此分享一下,希望能对爱学习的小伙伴有所帮助… <?php // 数据库连接类 class DB{ //私有的属性 p ...

  7. XPath轴

    XPath 轴翻译:Linyupark / 2006-03-24 The XML Example DocumentXML举例文档 We will use the following XML docum ...

  8. Log Parser 2.2 + Log Parser Lizard GUI 分析IIS日志示例

    Log Parser 日志分析工具,用命令行操作,可以分析 IIS logs,event logs,active directory,log4net,file system,t-sql Log Par ...

  9. 菜刀php过waf

    关于PHP 一.waf为啥会拦截菜刀.菜刀在连接时,会向server端POST数据,抓包查看: 会看到他向server端post了 @eval(base64_decode($_POST[z0]));  ...

  10. Selenium Webdriver——操作隐藏的元素(二)display属性

    有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了.例如,下面的情况: 页面主要通过“display:none”来控制整个下拉框不可见.这个时候如果直接操作这个下拉框, ...