La fonction Perl Bless

La Fonction Perl Bless



La syntaxe de programmation orientée objet en Perl est un peu différente des langages de programmation orientés objet standard comme Java, C++, Python, etc. Le mot-clé package est utilisé en Perl pour définir une classe en Perl. La déclaration d'objet et de méthode en Perl est similaire à la déclaration de variable et de sous-programme, mais la méthode de déclaration d'un objet en Perl pour relier la référence et le référent est différente des autres langages de programmation. La fonction bless() est utilisée pour effectuer cette tâche. Les utilisations de la fonction bless pour effectuer la programmation orientée objet en Perl sont présentées dans ce didacticiel.

Syntaxe:

La syntaxe de la fonction « bénir » est donnée ci-dessous. Cette fonction peut être utilisée avec un ou deux arguments. Normalement, cette fonction est utilisée avec deux arguments, le premier argument étant la variable de référence et le deuxième argument étant le nom de classe référencé par le premier argument. Lorsqu'elle est utilisée avec une seule valeur d'argument, la variable de référence fait référence au package actuel.







bénisse la réf.

ou



bénisse la réf. , nom du cours

Différents exemples de la fonction Bless()

Les utilisations de la fonction bless() de plusieurs manières sont présentées dans cette partie du didacticiel.



Exemple 1 : Utilisation de la classe et de l'objet simples

Dans cet exemple, le package nommé « Book » contient un sous-programme qui fonctionne comme la méthode constructeur de la classe. Ici, la fonction « bénir » est utilisée pour associer les variables au nom de classe fourni au moment de l'appel de la méthode Init().





#!/usr/bin/perl

utiliser strict ;
utiliser avertissements ;
utiliser 5.34.0 ;

#Définir le forfait
Forfait Livre ;
#Définir le constructeur
sous Init
{
#Initialiser le nom de la classe
mon $nom de classe = changement ;
#Initialiser les variables
mes variables $ = {
'Nom du livre' => changement ,
'Nom de l'auteur' => changement ,
'Année de publication' => changement ,
'Prix' => changement
} ;

#Définir la référence avec le référent
bénis $variables , $nom de classe ;
#Renvoyer la variable de référence
retour $variables ;
}

#Créer un objet de la classe
mon $bookObj = Livre d'initialisation ( 'Apprendre Perl' , 'Randal L. Schwartz' , 1993 , Quatre cinq ) ;

#Imprimer les valeurs des variables de classe
dire 'Détails du livre :' ;
dire ' \n Nom du livre : $bookObj->{'BookName'}' ;
dire 'Nom de l'auteur : $bookObj->{'AuthorName'}' ;
dire 'Année de publication : $bookObj->{'PublishedYear'}' ;
dire 'Prix: \$ $bookObj->{'Prix'}' ;

Sortir:

La sortie suivante apparaît après l'exécution du script :



  p1

Exemple 2 : Utilisation de la classe et de l'objet avec plusieurs méthodes

Dans cet exemple, le package nommé « Products » contient deux méthodes. Une méthode est Init() qui est utilisée pour initialiser les variables nécessaires et faire référence aux variables avec le nom de classe à l'aide de la fonction « bénir ». Une autre méthode, calculate_price(), est utilisée pour calculer le prix discount du produit.

#!/usr/bin/perl

utiliser strict ;
utiliser avertissements ;
utiliser 5.34.0 ;

#Définir le forfait
paquet Produit ;
mes variables $ = { } ;

#Définir le constructeur
sous Init
{
#Initialiser le nom de la classe
mon $nom de classe = changement ;
#Initialiser les variables
$variables = {

'Identifiant' => changement ,
'Nom' => changement ,
'Prix' => changement

} ;

#Définir la référence avec le référent
bénis $variables , $nom de classe ;
#Renvoyer la variable de référence
retour $variables ;
}

#Déclarer la méthode pour calculer le prix discount
sous calculer_prix
{

mon $discount_price = $variables- > { 'Prix' } - $variables- > { 'Prix' } * 0,1 ;
dire 'Prix bas: \$ $discount_price' ;

}

#Créer un objet de la classe
mon $proObj = Initialiser le produit ( '6745' , 'Moniteur Dell' , cinquante ) ;

#Imprimer les valeurs des variables de classe
dire 'Informations sur le produit après 10 \% rabais: ' ;
dire ' \n Identifiant : $proObj->{'Id'}' ;
dire 'Nom : $proObj->{'Nom'}' ;
dire 'Prix d'origine: \$ $proObj->{'Prix'}' ;

#Appeler la méthode objet
$proObj- > calculer_prix ( ) ;

Sortir:

La sortie suivante apparaît après l'exécution du script :

  p2

Exemple 3 : Utiliser la classe en créant un module

Dans cet exemple, le module Perl défini par l'utilisateur est créé dans un fichier séparé nommé « CalPower.pm » où la fonction « bénir » est utilisée. Créez ce fichier avec le script Perl suivant. Ce module calcule le « x n ' où les valeurs de 'x' et 'n' sont fournies à partir du script Perl où ce module est importé.

#!/usr/bin/perl

utiliser strict ;
utiliser avertissements ;
utiliser 5.34.0 ;

#Définir le nom du package
forfait CalPower ;

#Définir le constructeur
sous Init
{
mon $nom de classe = changement ;
ma $var =
{
nombre => changement ,
pouvoir => changement
} ;

bénisse $var , $nom de classe ;
retour $var ;

}

#Définir la méthode de calcul de la valeur de puissance
sous Calculer
{
ma $var = changement ;
mon $résultat = $var- > { 'nombre' } ;
pour ( mon $ je = 1 ; $ je < $var- > { 'pouvoir' } ; $i++ )
{
$résultat = $var- > { 'nombre' } * $résultat ;
}
retour $résultat ;

}

Créez un fichier Perl avec le script suivant dans lequel le module « CalPower » est importé pour calculer la puissance en fonction de la valeur d'entrée prise par l'utilisateur.

#!/usr/bin/perl

utiliser strict ;
utiliser avertissements ;
utiliser 5.34.0 ;
utiliser CalPower ;

#Prendre la valeur de base
imprimer 'Entrez la valeur de x :' ;
grignoter ( mes x $ = <> ) ;
#Prenez le pouvoir
imprimer 'Entrez la valeur de n :' ;
grignoter ( mon $n = <> ) ;

#Créer un objet de la classe
mon $Obj = Init CalPower ( x $ , $n ) ;

#Imprimer la valeur de puissance calculée
imprimer '$x à la puissance $n vaut ' ;
dis $Obj- > Calculer ( ) ;

Sortir:

La sortie suivante apparaît après l'exécution du script :

  p3

Conclusion

Les utilisations de la fonction « bénir » en Perl sont présentées dans ce didacticiel en créant un package dans le même fichier Perl et en créant un module dans un fichier différent.