包和模块-基于实时计算时延扩展的lmmse信道估计算法
12.1包和模块12.1.1引言在下面几节中,我们将讨论标准Perl库中的包和模块以及如何使用它们。目前许多模块都使用面向对象的方法进行程序设计,本书将在第14章中予以讨论,并介绍诸如类、对象和方法之类的术语。本章重点介绍面向函数的模块和库,以及如何使用与创建它们。本章还将介绍如何从CPAN (Comprehensive Perl Archive Network,Perl综合文档网)获取模块,在第14、15和18章中将更详细地介绍如何安装和使用CPAN模块。 12.1.2一个类比两个孩子都有一盒乐高积木玩具。其中一套乐高积木可以建一艘船,另一套可以建一架飞机。这两个孩子打开盒子并把其中的积木撒在地板上,它们混在一起。乐高积木块具有不同的形状和颜色。两个盒子中都有黄色的方块、红色的三角块和蓝色的矩形块,但是它们现在混在了一起,很难分清哪些应该用于造飞机,哪些应用于造船。如果这些积木都放在它们单独的盒子里,那就始终不会出现这种混淆情况了。在Perl中,这些单独的盒子称为包(package),乐高积木块则称为符号(symbol);即变量和常量的名称。通过把符号保存在它们自己的私有包中,用户便可在程序中导入库模块和例程,从而避免变量名与所包含的模块或库文件中的命名发生冲突。 12.1.3定义将数据和函数包装到单独的命名空间中称为封装(encapsulation)(C++程序员称之为类(class),面向对象的Perl程序员也称之为类)。单独的命名空间又称作是包(package)。单独的命名空间意味着:对于命名包中所有的变量,Perl都持有一个单独的符号表。默认的当前包是main包。迄今为止所有的示例脚本都位于包main中。在默认情况下,包内所有的变量都是全局变量。包机制允许用户切换命名空间,从而让包中的变量成为私有变量,即使它们在包外拥有相同的名称也
23.73MB
文件大小:
评论区