Paquetes en Perl

Un paquete de Perl es una colección de código que reside en su propio espacio de nombres. El módulo Perl es un paquete definido en un archivo que tiene el mismo nombre que el del paquete y tiene la extensión .pm . Dos módulos diferentes pueden contener una variable o una función del mismo nombre. Cualquier variable que no esté contenida en ningún paquete pertenece al paquete principal. Por lo tanto, todas las variables que se utilizan pertenecen al paquete ‘principal’. Con la declaración de paquetes adicionales se mantiene que las variables en diferentes paquetes no interfieren entre sí.
 

Declaración de un módulo Perl

El nombre del módulo debe ser el mismo que el nombre del paquete y tiene una extensión .pm.

Ejemplo: Calculadora.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;

Aquí, el nombre del archivo es «Calculator.pm» almacenado en el directorio Calculator. Note que 1; se escribe al final del código para devolver un valor verdadero al intérprete. Perl acepta cualquier cosa que sea verdadera en lugar de 1.
 

Usar un módulo Perl

Para usar este módulo de calculadora, usamos las funciones require o use. Para acceder a una función o una variable desde un módulo, se utiliza ::. Aquí hay un ejemplo que demuestra lo mismo:

Ejemplos: 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);

Producción:

 

Acceso a un paquete desde un directorio diferente

Si un archivo que accede al paquete se encuentra fuera del directorio, usamos ‘::’ para indicar la ruta del módulo. Por ejemplo, el archivo que usa el módulo de la calculadora está fuera del paquete de la calculadora, por lo que escribimos Calculadora::Calculadora para cargar el módulo, donde el valor a la izquierda de ‘::’ representa el nombre del paquete y el valor a la derecha de ‘::’ representa el módulo Perl nombre. Veamos un ejemplo para entender esto:

Ejemplos: Test_out_package.pl fuera del directorio de la Calculadora

#!/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);

Producción:

 

Uso de variables de módulos

Las variables de diferentes paquetes se pueden usar declarándolas antes de usarlas. El siguiente ejemplo demuestra esto
Ejemplos: Mensaje.pm

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

El archivo Perl para acceder al módulo es el siguiente
Ejemplos: variable.pl

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

Producción:

 

Bloque de inicio y finalización

El bloque BEGIN y END se usa cuando queremos ejecutar una parte del código al principio y otra parte del código al final. Los códigos escritos dentro de BEGIN{…} se ejecutan al principio del script, mientras que los códigos escritos dentro de END{…} se ejecutan al final del script. El siguiente programa demuestra esto:
Ejemplos: 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";

Producción:

In the begin block
Hello Perl;
In the end block

Publicación traducida automáticamente

Artículo escrito por rupanisweety y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *