Perl 包

Perl 包

一个Perl包是一个代码的集合,它驻留在自己的命名空间中。Perl模块是在一个文件中定义的包,该文件的名字与包的名字相同,扩展名为 .pm。 两个不同的模块可以包含一个相同名称的变量或函数。任何不包含在任何包中的变量都属于主包。因此,所有正在使用的变量都属于 “主 “包。通过对额外包的声明,可以保持不同包中的变量不会相互干扰。

Perl模块的声明

模块的名称必须与包的名称相同,并且有一个.pm的扩展名。

例如:Calculator.pm

package Calculator;
  
# Defining sub-routine for Addition
sub addition
{
    # Initializing Variables a & b
    a =_[0];
    b =_[1];
      
    # Performing the operation
    a =a + b;
      
    # Function to print the Sum
    print "\n***Addition isa";
}
  
# Defining sub-routine for Subtraction
sub subtraction
{
    # Initializing Variables a & b
    a =_[0];
    b =_[1];
      
    # Performing the operation
    a =a - b;
      
    # Function to print the difference
    print "\n***Subtraction isa";
}
1;

这里,文件的名称是 “Calculator.pm”,存储在Calculator目录下。请注意,在代码的末尾写了1;,以便向解释器返回一个真值。Perl接受任何为真值的东西,而不是1。

使用 Perl 模块

为了使用这个计算器模块,我们使用 require 或 use 函数。要从一个模块中访问一个函数或一个变量,可以使用 :: 。下面是一个示范性的例子:

例子:Test.pl

#!/usr/bin/perl
  
# Using the Package 'Calculator'
use Calculator;
  
print "Enter two numbers to add";
  
# Defining values to the variables
a = 10;b = 20;
  
# Subroutine call
Calculator::addition(a,b);
  
print "\nEnter two numbers to subtract";
  
# Defining values to the variables
a = 30;b = 10;
  
# Subroutine call
Calculator::subtraction(a,b);

输出:

Perl中的包

从不同的目录访问软件包

如果访问软件包的文件位于目录之外,那么我们用’:’来告诉模块的路径。例如,使用计算器模块的文件在计算器包之外,所以我们写Calculator ::Calculator来加载模块,其中’::’左边的值代表包名,’:’右边的值代表Perl模块名。让我们看一个例子来理解这个问题。

例子:计算器目录外的Test_out_package.pl

#!/usr/bin/perl
  
use GFG::Calculator; # Directory_name::module_name
  
print "Enter two numbers to add";
  
# Defining values to the variables
a = 10;b = 20;
  
# Subroutine call
Calculator::addition(a,b);
  
print "\nEnter two numbers to subtract";
  
# Defining values to the variables
a = 30;b = 10;
  
# Subroutine call
Calculator::subtraction(a,b);

输出:

Perl中的包

使用来自模块的变量

来自不同包的变量可以通过在使用前声明来使用。下面的例子演示了这一点
例子:Message.pm

#!/usr/bin/perl
  
package Message;
  
# Variable Creation
username;
  
# Defining subroutine
sub Hello
{
  print "Hellousername\n";
}
1;

访问模块的Perl文件如下

示例:variable.pl

#!/usr/bin/perl
  
# Using Message.pm package
use Message;
  
# Defining value to variable
$Message::username = "ABC";
  
# Subroutine call
Message::Hello();

输出:

Perl中的包

BEGIN和END块

BEGIN和END块是在我们想在开始时运行一部分代码,在结束时运行一部分代码时使用的。写在BEGIN{…}中的代码在脚本的开头执行,而写在END{…}中的代码则在脚本的结尾执行。下面的程序演示了这一点:

示例:begineg.pl

#!/usr/bin/perl
  
# Predefined BEGIN block
BEGIN
{
    print "In the begin block\n";
}
  
# Predefined END block
END
{
    print "In the end block\n";
}
  
print "Hello Perl;\n";

输出

In the begin block
Hello Perl;
In the end block

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程