Perl Bless-funktionen

Perl Bless Funktionen



Den objektorienterede programmeringssyntaks i Perl er en smule anderledes end de standard objektorienterede programmeringssprog som Java, C++, Python osv. Pakkenøgleordet bruges i Perl til at definere en klasse i Perl. Objekt- og metodeerklæringen i Perl ligner variabel- og subrutineerklæringen, men metoden til at erklære et objekt i Perl for at relatere referencen og referencen er forskellig fra andre programmeringssprog. Funktionen bless() bruges til at udføre denne opgave. Brugen af ​​velsignefunktionen til at udføre den objektorienterede programmering i Perl er vist i denne tutorial.

Syntaks:

Syntaksen for 'velsigne'-funktionen er givet i det følgende. Denne funktion kan bruges med et argument eller to argumenter. Normalt bruges denne funktion med to argumenter, hvor det første argument er referencevariablen, og det andet argument er klassenavnet, som det første argument refererer til. Når den bruges med én argumentværdi, refererer referencevariablen til den aktuelle pakke.







velsigne ref

eller



velsigne ref , klassenavn

Forskellige eksempler på Bless()-funktionen

Brugen af ​​bless()-funktionen på flere måder er vist i denne del af selvstudiet.



Eksempel 1: Brug af den simple klasse og objekt

I dette eksempel indeholder pakken med navnet 'Bog' en underrutine, der fungerer som klassens konstruktørmetode. Her bruges 'bless'-funktionen til at relatere variablerne til det klassenavn, der er angivet på tidspunktet for kald af Init()-metoden.





#!/usr/bin/perl

brug strenge ;
brug advarsler ;
brug 5.34.0 ;

#Definer pakken
pakkebog ;
#Definer konstruktøren
under Init
{
#Initialiser klassenavnet
mit $className = flytte ;
#Initialiser variablerne
mine $variabler = {
'Bognavn' => flytte ,
'AuthorName' => flytte ,
'Udgivelsesår' => flytte ,
'Pris' => flytte
} ;

#Indstil referencen med referencen
velsigne $variabler , $className ;
#Returner referencevariablen
Vend tilbage $variabler ;
}

#Opret et objekt i klassen
min $bookObj = Init bog ( 'Lære Perl' , 'Randal L. Schwartz' , 1993 , Fire, fem ) ;

#Udskriv værdierne af klassevariablerne
sige 'Bogdetaljer:' ;
sige ' \n Bognavn: $bookObj->{'BookName'}' ;
sige 'Forfatternavn: $bookObj->{'AuthorName'}' ;
sige 'Udgivelsesår: $bookObj->{'PublishedYear'}' ;
sige 'Pris: \$ $bookObj->{'Price'}' ;

Produktion:

Følgende output vises efter eksekvering af scriptet:



  p1

Eksempel 2: Brug af klassen og objektet med flere metoder

I dette eksempel indeholder pakken med navnet 'Produkter' to metoder. En metode er Init(), som bruges til at initialisere de nødvendige variabler og henvise til variablerne med klassenavnet ved hjælp af 'bless'-funktionen. En anden metode, som er calculate_price() bruges til at beregne rabatprisen på produktet.

#!/usr/bin/perl

brug strenge ;
brug advarsler ;
brug 5.34.0 ;

#Definer pakken
pakke produkt ;
mine $variabler = { } ;

#Definer konstruktøren
under Init
{
#Initialiser klassenavnet
mit $className = flytte ;
#Initialiser variablerne
$variabler = {

'Id' => flytte ,
'Navn' => flytte ,
'Pris' => flytte

} ;

#Indstil referencen med referencen
velsigne $variabler , $className ;
#Returner referencevariablen
Vend tilbage $variabler ;
}

#Declare metode til at beregne rabatpris
underberegn_pris
{

min $rabatpris = $variabler- > { 'Pris' } - $variabler- > { 'Pris' } * 0,1 ;
sige 'Udsalgspris: \$ $rabat_pris' ;

}

#Opret et objekt i klassen
min $proObj = Init produkt ( '6745' , 'Dell skærm' , halvtreds ) ;

#Udskriv værdierne af klassevariablerne
sige 'Produktoplysninger efter 10 \% rabat: ' ;
sige ' \n Id: $proObj->{'Id'}' ;
sige 'Navn: $proObj->{'Name'}' ;
sige 'Original pris: \$ $proObj->{'Price'}' ;

#Kald objektmetoden
$proObj- > beregne_pris ( ) ;

Produktion:

Følgende output vises efter eksekvering af scriptet:

  s2

Eksempel 3: Brug af klassen ved at oprette et modul

I dette eksempel oprettes det brugerdefinerede Perl-modul i en separat fil med navnet 'CalPower.pm', hvor 'velsigne'-funktionen bruges. Opret denne fil med følgende Perl-script. Dette modul beregner 'x n ' hvor værdierne 'x' og 'n' er angivet fra Perl-scriptet, hvor dette modul er importeret.

#!/usr/bin/perl

brug strenge ;
brug advarsler ;
brug 5.34.0 ;

#Definer pakkenavnet
pakke CalPower ;

#Definer konstruktøren
under Init
{
mit $className = flytte ;
min $var =
{
nummer => flytte ,
strøm => flytte
} ;

velsigne $var , $className ;
Vend tilbage $var ;

}

#Definer metoden til at beregne effektværdien
under Beregn
{
min $var = flytte ;
mit $resultat = $var- > { 'nummer' } ;
til ( min $i = 1 ; $i < $var- > { 'strøm' } ; $i++ )
{
$resultat = $var- > { 'nummer' } * $resultat ;
}
Vend tilbage $resultat ;

}

Opret en Perl-fil med følgende script, hvor 'CalPower'-modulet importeres for at beregne effekten baseret på den inputværdi, der tages fra brugeren.

#!/usr/bin/perl

brug strenge ;
brug advarsler ;
brug 5.34.0 ;
bruge CalPower ;

#Tag basisværdien
Print 'Indtast værdien af ​​x:' ;
chomp ( min $x = <> ) ;
#Tag power valen
Print 'Indtast værdien af ​​n:' ;
chomp ( min $n = <> ) ;

#Opret et objekt i klassen
min $Obj = Start CalPower ( $x , $n ) ;

#Udskriv den beregnede effektværdi
Print '$x i potensen $n er' ;
sig $Obj- > Beregn ( ) ;

Produktion:

Følgende output vises efter eksekvering af scriptet:

  s3

Konklusion

Brugen af ​​'velsigne'-funktionen i Perl er vist i denne tutorial ved at oprette en pakke i den samme Perl-fil og oprette et modul i en anden fil.