PERL编程24学时教程——13 引用与结构.pdf

PERL编程24学时教程——13 引用与结构.pdf

ID:51493398

大小:487.62 KB

页数:12页

时间:2020-03-25

PERL编程24学时教程——13 引用与结构.pdf_第1页
PERL编程24学时教程——13 引用与结构.pdf_第2页
PERL编程24学时教程——13 引用与结构.pdf_第3页
PERL编程24学时教程——13 引用与结构.pdf_第4页
PERL编程24学时教程——13 引用与结构.pdf_第5页
资源描述:

《PERL编程24学时教程——13 引用与结构.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、下载第13学时引用与结构如果Perl是你使用的第一个编程语言,那么本学时将会使你感到颇有兴趣。在大多数编程语言中,你会发现一个概念,即一组数据实际上可以是对另一组数据的引用。有时这些引用称为指针(在pascal或C语言中),有时这种技术称为间接引用(在汇编语言中),而有些语言则根本没有指针的概念(在BASIC或Java中)。如果你以前从未使用过引用、指针或间接引用等概念,那么可能必须多次阅读本学时讲解的某些部分的内容,否则会感到混淆不清。Perl也拥有这些特殊类型的值,不过在Perl中,它们都称为引用。在Perl中,引用可以用于许多目的,但在本学时中,你要学习的是如何使用引用来调用带有多个参数

2、的复杂函数和如何创建复杂的数据类型,如列表的列表。所谓引用,它非常类似老式图书馆中的卡片目录。目录中的每个索引卡指的是图书馆中的一本书。卡片可以指明这本书是什么类型的书(比如小说、非小说、参考书等),并指明这本书放在什么位置。有些卡片目录可能配有对同一本书的若干个引用,它们是不同种类的引用,并且甚至可以参见该目录中的其他卡片。Perl的引用类似卡片目录,可以指向各组数据。引用能够知道它指向的是何种类别的数据(如标量、数组或哈希),也知道这些数据在什么地方。引用可以被拷贝,但不改变原始数据的任何东西。对于同一组数据,可以进行多次引用。实际上一个引用可以指向其他的引用。请牢记下面这些要点,慢慢阅读

3、下面几页内容,并且在我们介绍有关的问题时保持清醒的头脑:¥引用的基本概念。¥引用的常见结构。¥运用所有这些概念而建立的一个简要代码例子。13.1引用的基本概念使用赋值运算符,可以创建和赋值一个普通的标量变量,如下所示:在这个代码段建立后,可以创建一个称为$a的标量变量,它包含字符串“Stones”。到现在为止,一切都很正常。这时,在计算机中的某个地方有一个标为$a的位置,它包含了该字符串,如下图所示:如果将标量$b赋予$a,比如$a=$b,那么会产生该数据的两个拷贝,它们使用两个不同的名字,如下图所示:如果你想要两个独立的数据拷贝,那么拥有两个拷贝是很好的。但是,如果想让$a和$b都引用同一组

4、数据,而不是引用一个数据拷贝,那么必须创建一个引用。所谓引用,它只是148使用第二部分高级特性下载指向一组数据的指针,并不包含实际数据的本身。该引用通常存放在另一个标量变量中。若要创建对某个既定变量的引用,可以在该变量的前面加上一个反斜杠。例如,若要创建称为$ref的对$a的引用,只需要像下面这样将引用赋予$ref即可:这个赋值创建了类似下面这样的条件:$ref并不包含用于它自己的任何数据,它只是对$a的一个引用。变量$a根本没有改变,它仍然可以照常被赋值($a=“Foo”)或显示(print$a)。变量$ref现在包含对$a的引用。不能简单地对$ref进行操作,因为它里边没有通常的标量值。实

5、际上,如果输出$ref,就会显示类似SCALAR(0x0000)的信息。若要通过$ref获得$a中的值,必须间接引用$ref。间接引用可以被视为上面的方块图中按箭头方向的引用。若要通过引用$ref来输出$a的值,你可以像下面这样使用另一个$:在上面的代码段中,$ref当然包含了引用。增加的一个$告诉Perl,$ref中的引用指的是一个标量值。$ref引用的标量值被取出并输出。也可以通过引用来修改原始值,这是你对数据拷贝所不能进行的操作。下面这个代码用于修改$a中的原始值:这项修改形成了类似下面这样的引用关系:如果你使用$ref而不是$$ref那么存放在$ref中的引用将被撤消并被实际值取代,如

6、下所示:上面这个代码段运行后,$ref不再包含一个引用,它只是一个标量。你可以像任何其他标量值那样,给引用赋值:得到的结果如下:上面的代码段运行后,$$oref和$$nref均可用于获取值“Gandalf”。也可以存放对某个引用的引用,如下所示:第13学时引用与结构使用149下载在这个例子中,引用链接类似下面的形式:如果使用$bref2来输出书名,那么该引用将是$$bref2,如果使用$bref,则该引用是$$bref。请注意,$$$bref2多了一个美元符号,它需要增加一层间接引用,才能获得原始值。13.1.1对数组的引用也可以创建对数组和哈希结构的引用。可以像创建对标量的引用那样,使用反斜

7、杠来创建对数组和哈希结构的引用:现在标量变量$aref包含了对整个数组@arr的引用。直观地说,它类似下面的形式:数据数据数据数据数据若要使用引用$aref来访问@arr的各个部分,你可以使用下列代码之一:$$aref[0]@arr的第一个元素@$aref[2,3]@arr的一个片@$aref@arr的整个数组为了清楚起见,可以使用花括号将引用与涉及数组的各个部分隔开,如下所示:$$aref[0]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。