主要有两方面的不同将用语创建真正复杂系统的编程语言,与普通的教学语言区分开来。
那些更加健壮的编程语言具有以下特点:
1. 不必使用变量名就能动态地位数据分配存储空间,我们称之为匿名数据结构
2.可以指向任何数据结构,无论它是静态分配还是动态分配的
指针,简言之,就是保存其他数据地址的变量。这个地址可以是机器地址,在C语言中就是这样,
也可以是一种更高抽象层次的实体,比如名字或数组偏移量。
Perl 对这两种概念都支持的相当好,它允许你创建匿名数据结构,而且还提供了一种称做"引用(reference)"的类似
于C语言指针的基本数据类型。
正像C语言指针可以指向数据甚至函数地址一样,Perl的引用同样可以指向常规数据类型
(如标量变量,数组和散列表)和其他类型的实体
因为和C语言不同,Perl 为你省去了许多不必要的工作。比如下面这行代码:
$line[19] = "hello";
它创建了一个20个元素的数组,然后将最后一个元素赋值为一个字符串。
对已有变量的引用:
如果你有C语言编程背景的话,就会知道有两种方法可以用来初始化C语言中的指针。
int a,*p
p = &a; /* p 中现在包含a的地址*/
你可以通过在已有变量名前添加"\" 来创建对它的引用,例如:
引用本身就是一种标量变量:
在我们讨论这个专题中,有一点很重要,那就是使用引用作为散列表的键值
间接访问:
间接访问(dereference) 的意思就是取得引用所指的变量的值
在C语言中,如果p是一个指针,那么*p 就表示p所指向的值。
对数组的引用:
你可以用三种方式使用普通数组:
1.将数组作为一个整体进行存取,使用记号@array.例如,你可以打印整个数组或向其中添加元素
2.使用记号$array[$i] 来存取数组中的单个元素
3.使用记号@array[index,index2,...] 来分段(slice)存取数组中的元素。
对散列表的引用:
对散列表的引用同样直接了当:
zjzc01:/root/hei# ca
第<1>章 数据引用与匿名存储
最新推荐文章于 2022-11-21 10:36:13 发布