Perl 教程 之 Perl 包和模块 1

简介: Perl教程介绍了包和模块的概念。包是具有独立符号表的命名空间,允许在同一程序中使用相同变量名而不冲突。通过`package mypack;`定义包,使用`包名::变量名`来访问其他包的变量。示例展示了`main`和`Foo`两个包的交互,利用`__PACKAGE__`变量显示当前包名。程序输出显示了不同包中变量的独立性。

Perl 教程 之 Perl 包和模块 1

Perl 包和模块

Perl 中每个包有一个单独的符号表,定义语法为:

package mypack;
此语句定义一个名为 mypack 的包,在此后定义的所有变量和子程序的名字都存贮在该包关联的符号表中,直到遇到另一个 package 语句为止。

每个符号表有其自己的一组变量、子程序名,各组名字是不相关的,因此可以在不同的包中使用相同的变量名,而代表的是不同的变量。

从一个包中访问另外一个包的变量,可通过" 包名 + 双冒号( :: ) + 变量名 " 的方式指定。

main
package main;
这样,接下来的程序就好象从没定义过包一样,变量和子程序的名字象通常那样存贮。

以下实例中文件有 main 和 Foo 包。 特殊变量 PACKAGE 用于输出包名:

实例

!/usr/bin/perl

main 包

$i = 1;
print "包名 : " , PACKAGE , " $i\n";

package Foo;

Foo 包

$i = 10;
print "包名 : " , PACKAGE , " $i\n";

package main;

重新指定 main 包

$i = 100;
print "包名 : " , PACKAGE , " $i\n";
print "包名: " , PACKAGE , " $Foo::i\n";

1;

执行以上程序,输出结果为:

包名 : main 1
包名 : Foo 10
包名 : main 100
包名: main 10

目录
相关文章
|
6月前
|
API 开发工具 容器
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
FA大概是API7之前的开发模型。所谓的开发模型,值得是创建鸿蒙开发工程后,你在什么样子的系统容器和接口上进行开发。 当初我在开发OpenHarmony的时候,最早用的就是FA模型,正是因为FA模型在开发过程中的诸多不方便,大概在API8时,官方推出了Stage模型,进行初步替代。 Stage模型,见名知意,是在系统提供的舞台容器上,进行应用的开发。整理更新的低耦合,高内聚。应用进程的管理也更加合理高效。 本文主要针对Stage模型与FA模型的区别。以及Stage模型如何获取上下文作出讲解。
418 0
|
Linux C++
linux系统中QT里面多线程的使用方法
linux系统中QT里面多线程的使用方法
423 0
|
机器学习/深度学习 存储 编解码
基于YOLOv8与ByteTrack的车辆检测追踪与流量计数系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、车辆检测追踪、过线计数、流量统计(2)
基于YOLOv8与ByteTrack的车辆检测追踪与流量计数系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、车辆检测追踪、过线计数、流量统计
|
安全 测试技术 持续交付
Docker和容器编排工具的自动化测试:构建可靠的容器化应用
容器化应用程序在现代软件开发中越来越受欢迎,而Docker和容器编排工具如Kubernetes、Docker Compose等的自动化测试是确保应用程序的可靠性和稳定性的关键。本文将深入探讨如何使用自动化测试来验证和验证Docker容器化应用程序,提供丰富的示例代码和详细的指南,以帮助您构建更可靠的容器化应用。
|
SQL 关系型数据库 数据库
如何实现update select 语句
​ 这次的文章出现也是因为这样一个类似的需求,个人需要把一个30万行(后续会发文介绍常见的处理手段)的数据文件入库,同时需要将部分字段迁移到另一张表,两个表之间通过两个字段进行and匹配。
704 0
|
并行计算 物联网 测试技术
Llama-2 推理和微调的硬件要求总结:RTX 3080 就可以微调最小模型
大语言模型微调是指对已经预训练的大型语言模型(例如Llama-2,Falcon等)进行额外的训练,以使其适应特定任务或领域的需求。微调通常需要大量的计算资源,但是通过量化和Lora等方法,我们也可以在消费级的GPU上来微调测试,但是消费级GPU也无法承载比较大的模型,经过我的测试,7B的模型可以在3080(8G)上跑起来,这对于我们进行简单的研究是非常有帮助的,但是如果需要更深入的研究,还是需要专业的硬件。
1914 0
|
存储 算法 Java
CMS 触发GC(Allocation Failure)解析
针对GC中发生的"Allocation Failure"
1296 0
|
关系型数据库 MySQL
peewee.ImproperlyConfigured: MySQL driver not installed!
peewee.ImproperlyConfigured: MySQL driver not installed!
537 0