Funcția Perl Bless

Functia Perl Bless



Sintaxa de programare orientată pe obiecte în Perl este puțin diferită de limbajele standard de programare orientată pe obiecte precum Java, C++, Python etc. Cuvântul cheie pachet este folosit în Perl pentru a defini o clasă în Perl. Declarația obiectului și a metodei în Perl sunt similare cu declarația variabilei și subrutinei, dar metoda de declarare a unui obiect în Perl pentru a lega referința și referentul este diferită de alte limbaje de programare. Funcția bless() este utilizată pentru a face această sarcină. Utilizările funcției bless pentru a face programarea orientată pe obiecte în Perl sunt prezentate în acest tutorial.

Sintaxă:

Sintaxa funcției „binecuvântează” este dată în cele ce urmează. Această funcție poate fi utilizată cu un argument sau două argumente. În mod normal, această funcție este utilizată cu două argumente în care primul argument este variabila de referință și al doilea argument este numele clasei la care face referire primul argument. Când este folosită cu o valoare de argument, variabila de referință se referă la pachetul curent.







binecuvântează ref

sau



binecuvântează ref , numele clasei

Diferite exemple ale funcției Bless().

Utilizările funcției bless() în mai multe moduri sunt prezentate în această parte a tutorialului.



Exemplul 1: Utilizarea clasei simple și a obiectului

În acest exemplu, pachetul numit „Book” conține o subrutină care funcționează ca metoda constructorului clasei. Aici, funcția „bless” este folosită pentru a lega variabilele cu numele clasei care este furnizat în momentul apelării metodei Init().





#!/usr/bin/perl

folosiți strict ;
utilizare Avertizări ;
utilizați 5.34.0 ;

#Definește pachetul
carte pachet ;
#Definește constructorul
sub Init
{
#Inițializați numele clasei
mea $className = schimb ;
#Inițializați variabilele
variabilele mele $ = {
„Nume Carte” => schimb ,
'Numele autorului' => schimb ,
„Anul Publicat” => schimb ,
'Preț' => schimb
} ;

#Setați referința cu referentul
binecuvântează $variabile , $className ;
#Return variabila de referință
întoarcere $variabile ;
}

#Creează un obiect al clasei
$bookObj al meu = Cartea Init ( „Învățare Perl” , 'Randal L. Schwartz' , 1993 , Patru cinci ) ;

#Tipărește valorile variabilelor de clasă
Spune 'Detalii carte:' ;
Spune ' \n Nume carte: $bookObj->{'BookName'}' ;
Spune „Numele autorului: $bookObj->{'AuthorName'}” ;
Spune „Anul publicării: $bookObj->{'PublishedYear'}” ;
Spune 'Preț: \$ $bookObj->{'Preț'}' ;

Ieșire:

Următoarea ieșire apare după executarea scriptului:



  p1

Exemplul 2: Utilizarea clasei și a obiectului cu mai multe metode

În acest exemplu, pachetul numit „Produse” conține două metode. O metodă este Init(), care este folosită pentru a inițializa variabilele necesare și pentru a se referi la variabilele cu numele clasei folosind funcția „bless”. O altă metodă care este calculate_price() este utilizată pentru a calcula prețul de reducere al produsului.

#!/usr/bin/perl

folosiți strict ;
utilizare Avertizări ;
utilizați 5.34.0 ;

#Definește pachetul
pachet produs ;
variabilele mele $ = { } ;

#Definește constructorul
sub Init
{
#Inițializați numele clasei
mea $className = schimb ;
#Inițializați variabilele
$variabile = {

„Id” => schimb ,
'Nume' => schimb ,
'Preț' => schimb

} ;

#Setați referința cu referentul
binecuvântează $variabile , $className ;
#Return variabila de referință
întoarcere $variabile ;
}

Metoda #Declare pentru a calcula prețul de reducere
sub calculate_price
{

prețul meu $discount_price = $variabile- > { 'Preț' } - $variabile- > { 'Preț' } * 0,1 ;
Spune 'Pret redus: \$ $discount_price' ;

}

#Creează un obiect al clasei
meu $proObj = Init produs ( '6745' , „Monitor Dell” , cincizeci ) ;

#Tipărește valorile variabilelor de clasă
Spune „Informații despre produs după 10 \% reducere: ' ;
Spune ' \n Id: $proObj->{'Id'}' ;
Spune „Nume: $proObj->{'Nume'}” ;
Spune 'Pret original: \$ $proObj->{'Preț'}' ;

#Apelați metoda obiectului
$proObj- > calcula_preț ( ) ;

Ieșire:

Următoarea ieșire apare după executarea scriptului:

  p2

Exemplul 3: Utilizarea clasei prin crearea unui modul

În acest exemplu, modulul Perl definit de utilizator este creat într-un fișier separat numit „CalPower.pm” unde este utilizată funcția „bless”. Creați acest fișier cu următorul script Perl. Acest modul calculează „x n „ unde valorile „x” și „n” sunt furnizate din scriptul Perl în care este importat acest modul.

#!/usr/bin/perl

folosiți strict ;
utilizare Avertizări ;
utilizați 5.34.0 ;

#Definiți numele pachetului
pachet CalPower ;

#Definește constructorul
sub Init
{
mea $className = schimb ;
mea $var =
{
număr => schimb ,
putere => schimb
} ;

binecuvântează $var , $className ;
întoarcere $var ;

}

#Definiți metoda de calcul al valorii puterii
sub Calculați
{
mea $var = schimb ;
$rezultatul meu = $var- > { 'număr' } ;
pentru ( $i-ul meu = 1 ; $i < $var- > { 'putere' } ; $i++ )
{
$rezultat = $var- > { 'număr' } * $rezultat ;
}
întoarcere $rezultat ;

}

Creați un fișier Perl cu următorul script în care modulul „CalPower” este importat pentru a calcula puterea pe baza valorii de intrare care este preluată de la utilizator.

#!/usr/bin/perl

folosiți strict ;
utilizare Avertizări ;
utilizați 5.34.0 ;
utilizați CalPower ;

#Ia valoarea de bază
imprimare „Introduceți valoarea lui x:” ;
chomp ( $x-ul meu = <> ) ;
#Ia valea puterii
imprimare „Introduceți valoarea lui n:” ;
chomp ( $n-ul meu = <> ) ;

#Creează un obiect al clasei
meu $Obj = Inițiază CalPower ( $x , $n ) ;

#Tipărește valoarea puterii calculate
imprimare '$x la puterea $n este' ;
spune $Obj- > calculati ( ) ;

Ieșire:

Următoarea ieșire apare după executarea scriptului:

  p3

Concluzie

Utilizările funcției „bless” în Perl sunt prezentate în acest tutorial prin crearea unui pachet în același fișier Perl și crearea unui modul într-un fișier diferit.