写一段代码时,要为这个代码提供它自己的命名空间,这样你的变量和函数就不会与其他人的变量/函数冲突,反之亦然。命名空间有点像你自己的家,在这里你可以随心所欲,房间里怎么乱都行,只要保证从外面看起来还不错。在Perl中,命名空间称为包(package)。包提供了基本结构模块,基于这些构造模块,可以构建更高层的模块和类概念。(引自P《Programming Perl》)
概念
包
- 通常包只是一个文件,在一个文件中放一个包,文件名和包名相同,并且使用.pm(perl module)作为扩展名。
- 包是独立于文件的,一个文件中可以有多个包,一个包也可能跨多个文件(不讨论)。
命名空间
- Perl中,命名空间称为包。
- 所以一个.pm不一定只有一个命名空间。
符号表
- 包的内容称为符号表(symbol table)。一个包就是一个符号表。
- 符号表存储在一个散列中,这个散列与包同名,并且要在后面追加