Perl中的软件包详细指南

2021年3月9日16:11:20 发表评论 788 次浏览

Perl程序包是驻留在其自己的名称空间中的代码的集合。 Perl模块是在文件中定义的软件包, 其名称与该软件包的名称相同, 并且具有扩展名

。两个不同的模块可能包含相同名称的变量或函数。任何不包含在任何程序包中的变量都属于主程序包。因此, 所有使用的变量都属于" main"包。通过声明其他程序包, 可以保证不同程序包中的变量不会相互干扰。

声明一个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 is $a" ;
}
  
# 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 is $a" ;
}
1;

在这里, 文件名是存储在目录Calculator中的" Calculator.pm"。注意1;在代码末尾编写, 以将真值返回给解释器。 Perl接受任何真值, 而不是1。

使用Perl模块

要使用此计算器模块, 我们使用需求或使用功能。要从模块访问函数或变量, 请使用::。这是一个演示相同内容的示例:

示例: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中的软件包1

从其他目录访问软件包

如果访问包的文件位于目录之外, 则我们使用" ::"来指示模块的路径。例如, 使用计算器模块的文件位于计算器包的外部, 因此我们编写了计算器::计算器以加载该模块, 其中'::'左侧的值表示软件包名称, 而'::'右侧的值表示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中的软件包2

使用模块中的变量

可以通过在使用之前声明它们来使用来自不同程序包的变量。以下示例说明了这一点

示例:Message.pm

#!/usr/bin/perl
  
package Message;
  
# Variable Creation
$username ;
  
# Defining subroutine
sub Hello
{
   print "Hello $username\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中的软件包3

开始和结束块

当我们想在代码的开始部分运行而在代码的结束部分运行时, 使用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

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: