Perl 模块和命名空间2024 年 8 月 29 日 | 阅读 2 分钟 模块是一个容器,其中包含一组变量和子例程,可以在程序中使用。每个模块都有一个公共接口,一组函数和变量。 要在程序中使用模块,可以使用 require 或 use 语句,尽管它们的语义略有不同。 'require' 语句在运行时加载模块,以避免模块的冗余加载。 'use' 语句类似于 require,但增加了两个属性:编译时加载和自动导入。 命名空间是不同标识符(变量,函数)的容器。 命名空间将类似于 name::variable。 每段 Perl 代码都在一个命名空间中。 在以下代码中, 这里定义了两个不同的变量 x。 $main::x 是一个包变量,$x 是一个词法变量。 大多数情况下,我们使用用 my 关键字声明的词法变量,并使用命名空间来分离函数。 在上面的代码中,如果我们不使用 use strict,我们将收到警告消息,例如 main 是当前脚本和当前变量的命名空间。 我们没有写任何东西,但已经位于 'main' 命名空间中。 通过添加 'use strict',现在我们得到了以下错误, 在此错误中,我们得到了一个新词“package”。 它表明我们忘记在使用 'my' 关键字之前声明变量,但实际上它表明我们应该提供变量所在的包的名称。 Perl 使用 package 关键字切换命名空间看看下面的代码, 这里我们使用 package 关键字从 'main' 命名空间切换到 'two' 命名空间。 使用命名空间调用 hii() 会返回相应的命名空间。 例如,say main::hii(); 返回 'main',而 say two::hii(); 返回 'two'。 在没有命名空间前缀的情况下调用 hii(),将返回当前命名空间本地的函数。 第一次,我们在 'two' 命名空间中。 因此它返回了 'two'。 第二次,我们使用 package main 切换了命名空间。 因此它返回了 'main'。 下一主题Perl 哈希 |
我们请求您订阅我们的新闻通讯以获取最新更新。