Perl中的软件包详细指南

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中的软件包详细指南

文章图片
从其他目录访问软件包
如果访问包的文件位于目录之外, 则我们使用" ::"来指示模块的路径。例如, 使用计算器模块的文件位于计算器包的外部, 因此我们编写了计算器::计算器以加载该模块, 其中'::'左侧的值表示软件包名称, 而'::'右侧的值表示Perl模块。名称。让我们看一个例子来理解这一点:
示例:计算器目录外的Test_out_package.pl
#!/usr/bin/perluse GFG::Calculator; # Directory_name::module_nameprint "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/perlpackage 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中的软件包详细指南

文章图片
开始和结束块
【Perl中的软件包详细指南】当我们想在代码的开始部分运行而在代码的结束部分运行时, 使用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

    推荐阅读