La funció Perl Bless

La Funcio Perl Bless



La sintaxi de programació orientada a objectes en Perl és una mica diferent dels llenguatges de programació orientats a objectes estàndard com Java, C++, Python, etc. La paraula clau package s'utilitza en Perl per definir una classe en Perl. La declaració d'objecte i mètode en Perl són similars a la declaració de variable i subrutina, però el mètode de declaració d'un objecte en Perl per relacionar la referència i el referent és diferent d'altres llenguatges de programació. La funció bless() s'utilitza per fer aquesta tasca. En aquest tutorial es mostren els usos de la funció bless per fer la programació orientada a objectes en Perl.

Sintaxi:

La sintaxi de la funció 'benedeix' es mostra a continuació. Aquesta funció es pot utilitzar amb un o dos arguments. Normalment, aquesta funció s'utilitza amb dos arguments on el primer argument és la variable de referència i el segon argument és el nom de classe al qual fa referència el primer argument. Quan s'utilitza amb un valor d'argument, la variable de referència fa referència al paquet actual.







beneir ref

o



beneir ref , nom de classe

Diferents exemples de la funció Bless().

Els usos de la funció bless() de múltiples maneres es mostren en aquesta part del tutorial.



Exemple 1: Ús de la classe i l'objecte simples

En aquest exemple, el paquet anomenat 'Llibre' conté una subrutina que funciona com el mètode constructor de la classe. Aquí, la funció 'benedeix' s'utilitza per relacionar les variables amb el nom de classe que es proporciona en el moment de cridar el mètode Init().





#!/usr/bin/perl

ús estricte ;
utilitzar avisos ;
utilitzar 5.34.0 ;

#Definiu el paquet
llibre paquet ;
#Definiu el constructor
sota Init
{
#Inicialitza el nom de la classe
el meu $className = canvi ;
#Inicialitza les variables
les meves variables $ = {
'Nom del llibre' => canvi ,
'AuthorName' => canvi ,
'Any Publicat' => canvi ,
'Preu' => canvi
} ;

# Estableix la referència amb el referent
beneeix $variables , $className ;
#Retorna la variable de referència
tornar $variables ;
}

#Crea un objecte de la classe
el meu $bookObj = Llibre d'inici ( 'Aprendre Perl' , 'Randal L. Schwartz' , 1993 , 45 ) ;

#Imprimeix els valors de les variables de classe
dir 'Detalls del llibre:' ;
dir ' \n Nom del llibre: $bookObj->{'BookName'}' ;
dir 'Nom de l'autor: $bookObj->{'AuthorName'}' ;
dir 'Any de publicació: $bookObj->{'PublishedYear'}' ;
dir 'Preu: \$ $bookObj->{'Preu'}' ;

Sortida:

La sortida següent apareix després d'executar l'script:



  p1

Exemple 2: Ús de la classe i l'objecte amb diversos mètodes

En aquest exemple, el paquet anomenat 'Productes' conté dos mètodes. Un mètode és Init() que s'utilitza per inicialitzar les variables necessàries i fer referència a les variables amb el nom de la classe mitjançant la funció 'benedeix'. Un altre mètode que és calculate_price() s'utilitza per calcular el preu de descompte del producte.

#!/usr/bin/perl

ús estricte ;
utilitzar avisos ;
utilitzar 5.34.0 ;

#Definiu el paquet
paquet de producte ;
les meves variables $ = { } ;

#Definiu el constructor
sota Init
{
#Inicialitza el nom de la classe
el meu $className = canvi ;
#Inicialitza les variables
$variables = {

'Identificació' => canvi ,
'Nom' => canvi ,
'Preu' => canvi

} ;

# Estableix la referència amb el referent
beneeix $variables , $className ;
#Retorna la variable de referència
tornar $variables ;
}

Mètode #Declare per calcular el preu de descompte
sub calcular_preu
{

el meu $discount_price = $variables- > { 'Preu' } -$variables- > { 'Preu' } * 0.1 ;
dir 'Preu de descompte: \$ $discount_price' ;

}

#Crea un objecte de la classe
el meu $proObj = Producte d'inici ( '6745' , 'Monitor Dell' , 50 ) ;

#Imprimeix els valors de les variables de classe
dir 'Informació del producte després de les 10 \% descompte: ' ;
dir ' \n Id: $proObj->{'Id'}' ;
dir 'Nom: $proObj->{'Nom'}' ;
dir 'Preu original: \$ $proObj->{'Preu'}' ;

#Call el mètode object
$proObj- > calcula_preu ( ) ;

Sortida:

La sortida següent apareix després d'executar l'script:

  p2

Exemple 3: Ús de la classe mitjançant la creació d'un mòdul

En aquest exemple, el mòdul Perl definit per l'usuari es crea en un fitxer separat anomenat 'CalPower.pm' on s'utilitza la funció 'benedeix'. Creeu aquest fitxer amb el següent script Perl. Aquest mòdul calcula la 'x n ' on els valors de 'x' i 'n' es proporcionen des de l'script Perl on s'importa aquest mòdul.

#!/usr/bin/perl

ús estricte ;
utilitzar avisos ;
utilitzar 5.34.0 ;

#Definiu el nom del paquet
paquet CalPower ;

#Definiu el constructor
sota Init
{
el meu $className = canvi ;
el meu $var =
{
nombre => canvi ,
poder => canvi
} ;

beneir $var , $className ;
tornar $var ;

}

#Definiu el mètode per calcular el valor de la potència
sub Calcula
{
el meu $var = canvi ;
el meu $resultat = $var- > { 'nombre' } ;
per ( el meu $i = 1 ; $i < $var- > { 'poder' } ; $i++ )
{
$resultat = $var- > { 'nombre' } * $resultat ;
}
tornar $resultat ;

}

Creeu un fitxer Perl amb el següent script on s'importa el mòdul 'CalPower' per calcular la potència en funció del valor d'entrada que es pren de l'usuari.

#!/usr/bin/perl

ús estricte ;
utilitzar avisos ;
utilitzar 5.34.0 ;
utilitzar CalPower ;

#Preneu el valor base
imprimir 'Introduïu el valor de x:' ;
picar ( el meu $x = <> ) ;
#Agafa la vall del poder
imprimir 'Introduïu el valor de n:' ;
picar ( el meu $n = <> ) ;

#Crea un objecte de la classe
el meu $Obj = Inicieu CalPower ( $x , $n ) ;

#Imprimeix el valor de potència calculat
imprimir '$x a la potència $n és' ;
digues $Obj- > Calcular ( ) ;

Sortida:

La sortida següent apareix després d'executar l'script:

  p3

Conclusió

Els usos de la funció 'benedeix' a Perl es mostren en aquest tutorial creant un paquet al mateix fitxer Perl i creant un mòdul en un fitxer diferent.