Perl 中的包是什么?


在 Perl 中,package 语句将当前命名上下文切换到指定的命名空间(符号表)。因此,

  • 包是一组代码,存在于其自身的命名空间中。
  • 命名空间是有序集合的唯一变量名称(又称为符号表)。
  • 命名空间可以防止不同包之间的变量名冲突。
  • 包支持模块的构建,在使用模块时,不会破坏模块自身命名空间之外的变量和函数。
  • 包持续有效,直到调用另一个包语句,或者直到当前块或文件的末尾。
  • 可以使用 :: 包限定符显式引用包中的变量。

下面是一个文件中包含主包和 Foo 包的示例。这里使用特殊的变量 __PACKAGE__ 来打印包名称。

示例

 实际演示

#!/usr/bin/perl

# This is main package
$i = 1;
print "Package name : " , __PACKAGE__ , " $i\n";
package Foo;

# This is Foo package
$i = 10;
print "Package name : " , __PACKAGE__ , " $i\n";
package main;

# This is again main package
$i = 100;
print "Package name : " , __PACKAGE__ , " $i\n";
print "Package name : " , __PACKAGE__ , " $Foo::i\n";
1;

输出

当执行上述代码时,它将生成以下结果 −

Package name : main 1
Package name : Foo 10
Package name : main 100
Package name : main 10

更新日期: 2019 年 12 月 2 日

244 次观看

开启您的 职业生涯

完成课程,获得认证

开始
广告