Perl 教程 之 Perl 包和模块 4

简介: Perl教程讲解了包和模块的使用。require和use函数可调用模块,require在运行时加载,use在编译时引入且能导入子模块。use能处理:内的路径,require需指定完整路径。通过`use Exporter`,@ISA=qw(Exporter)和@EXPORT数组可定义默认导出的函数和变量。

Perl 教程 之 Perl 包和模块 4

Perl 包和模块

Require 和 Use 函数

模块可以通过 require 函数来调用,如下所示:

实例

!/usr/bin/perl

require Foo;

Foo::bar( "a" );
Foo::blat( "b" );
也可以通过 use 函数来引用:

实例

!/usr/bin/perl

use Foo;

bar( "a" );
blat( "b" );
我们注意到 require 引用需要使用包名指定函数,而 use 不需要,二者的主要区别在于:

1、require用于载入module或perl程序(.pm后缀可以省略,但.pl必须有)
2、Perl use语句是编译时引入的,require是运行时引入的
3、Perl use引入模块的同时,也引入了模块的子模块。而require则不能引入,要在重新声明
4、USE是在当前默认的@INC里面去寻找,一旦模块不在@INC中的话,用USE是不可以引入的,但是require可以指定路径
5、USE引用模块时,如果模块名称中包含::双冒号,该双冒号将作为路径分隔符,相当于Unix下的/或者Windows下的\。 如:
use MyDirectory::MyModule
通过添加以下语句 use 模块就可以从模块中导出列表符号:

require Exporter;
@ISA = qw(Exporter);
@EXPORT数组包含默认导出的变量和函数的名字:

package Module;

require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(bar blat); # 默认导出的符号

sub bar { print "Hello $[0]\n" }
sub blat { print "World $
[0]\n" }
sub splat { print "Not $_[0]\n" } # Not exported!

1;

目录
相关文章
|
NoSQL 关系型数据库 Redis
Docker的通俗理解和通过宿主机端口访问Redis容器的实例
本文目标:引导初学者入门Docker,理解镜像、容器和宿主机概念,学习常用Docker命令,特别是如何创建并从Redis容器通过宿主机端口访问。 关键点: - Docker核心:镜像(类)、容器(实例)、宿主机(运行环境)。 - `docker pull` 拉取镜像,如 `redis:3.0`。 - `docker run -d --name` 后台运行容器,如 `my-redis`。 - `-p` 参数做端口映射,如 `6379:6379`。 - `docker exec -it` 交互式进入容器,如 `bash` 或执行命令。
539 4
|
Unix Linux Shell
linux中nohup和/dev/null,21
linux中nohup和/dev/null,21
390 0
|
Windows
windows 技巧篇-解除共享文件夹占用方法,解决共享文件被占用导致不可修改问题,查看共享文件被谁占用方法
windows 技巧篇-解除共享文件夹占用方法,解决共享文件被占用导致不可修改问题,查看共享文件被谁占用方法
2463 0
windows 技巧篇-解除共享文件夹占用方法,解决共享文件被占用导致不可修改问题,查看共享文件被谁占用方法
|
Oracle 关系型数据库 Linux
PostgreSQL和Oracle中的一条错误消息分析
PostgreSQL服务端的日志里有时会残留一些这样的消息。意思是说客户端的socket意外终止了。 LOG: could not receive data from client: Connection reset by peer. 或中文的 LOG:无法从客户端获得数据: 出现这样的消息有2个可能的原因 1)客户端进程意外结束了 2)客户端进程没有关闭连接就退出了 其中第2点有时比较隐蔽。
3071 0
|
6月前
|
前端开发 容器
32.[HarmonyOS NEXT Row案例一(上)] 使用Row组件创建水平排列的功能按钮组
HarmonyOS NEXT提供了丰富的布局组件,其中Row组件是一种常用的水平布局容器,可以将子组件按照水平方向排列。本教程将详细讲解如何使用Row组件创建一个水平排列的功能按钮组,重点介绍基础间距与对齐的设置方法。
184 4
|
中间件 Linux vr&ar
Centos7升级Glibc
Centos7升级Glibc
1845 6
|
11月前
|
存储 消息中间件 druid
Druid 架构原理及核心特性详解
Druid 是一个分布式、支持实时多维OLAP分析的列式存储数据处理系统,适用于高速实时数据读取和灵活的多维数据分析。它通过Segment、Datasource等元数据概念管理数据,并依赖Zookeeper、Hadoop和Kafka等组件实现高可用性和扩展性。Druid采用列式存储、并行计算和预计算等技术优化查询性能,支持离线和实时数据分析。尽管其存储成本较高且查询语言功能有限,但在大数据实时分析领域表现出色。
2469 19
|
Kubernetes 安全 数据安全/隐私保护
Kubernetes 安全性最佳实践
【8月更文第29天】随着容器化和微服务架构的普及,Kubernetes 已成为管理容器化应用的标准平台。然而,随着 Kubernetes 的广泛采用,其安全性问题也日益受到关注。本文将深入探讨 Kubernetes 的安全最佳实践,并通过具体的代码示例来展示如何保护 Kubernetes 集群免受攻击。
671 2
|
监控 数据可视化 API
Elasticsearch 的实时监控与告警
【9月更文第3天】随着数据量的不断增加和业务复杂度的提升,对数据系统的实时监控和告警变得至关重要。Elasticsearch 作为一个高性能的搜索和分析引擎,提供了丰富的工具和插件来帮助用户实现实时监控和自动化告警。本文将详细介绍如何配置 Elasticsearch 以实现实时数据监控,并自动触发告警机制。
1359 3
|
存储 消息中间件 Java
【分布式链路追踪技术】sleuth+zipkin
【分布式链路追踪技术】sleuth+zipkin
259 2