Perl Bless-funksjonen

Perl Bless Funksjonen



Den objektorienterte programmeringssyntaksen i Perl er litt forskjellig fra standard objektorienterte programmeringsspråk som Java, C++, Python, etc. Pakkenøkkelordet brukes i Perl for å definere en klasse i Perl. Objekt- og metodedeklarasjonen i Perl ligner på variabel- og subrutinedeklarasjonen, men metoden for å erklære et objekt i Perl for å relatere referansen og referenten er forskjellig fra andre programmeringsspråk. Bless()-funksjonen brukes til å utføre denne oppgaven. Bruken av velsignefunksjonen for å utføre objektorientert programmering i Perl er vist i denne opplæringen.

Syntaks:

Syntaksen til 'velsigne'-funksjonen er gitt i det følgende. Denne funksjonen kan brukes med ett argument eller to argumenter. Normalt brukes denne funksjonen med to argumenter der det første argumentet er referansevariabelen og det andre argumentet er klassenavnet som det første argumentet refererer til. Når den brukes med én argumentverdi, refererer referansevariabelen til gjeldende pakke.







velsigne ref

eller



velsigne ref , klassenavn

Ulike eksempler på Bless()-funksjonen

Bruken av bless()-funksjonen på flere måter vises i denne delen av opplæringen.



Eksempel 1: Bruk av den enkle klassen og objektet

I dette eksemplet inneholder pakken med navnet 'Book' en subrutine som fungerer som konstruktørmetoden til klassen. Her brukes 'velsigne'-funksjonen for å relatere variablene med klassenavnet som ble oppgitt på tidspunktet for oppkalling av Init()-metoden.





#!/usr/bin/perl

bruk strenge ;
bruk advarsler ;
bruk 5.34.0 ;

#Definer pakken
pakkebok ;
#Definer konstruktøren
under Init
{
#Initialiser klassenavnet
mitt $className = skifte ;
#Initialiser variablene
mine $variabler = {
'Boknavn' => skifte ,
'AuthorName' => skifte ,
'Published Year' => skifte ,
'Pris' => skifte
} ;

#Angi referansen med referansen
velsigne $variabler , $className ;
#Returner referansevariabelen
komme tilbake $variabler ;
}

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

#Skriv ut verdiene til klassevariablene
si 'Bokdetaljer:' ;
si ' \n Boknavn: $bookObj->{'BookName'}' ;
si 'Forfatternavn: $bookObj->{'AuthorName'}' ;
si 'Published Year: $bookObj->{'PublishedYear'}' ;
si 'Pris: \$ $bookObj->{'Price'}' ;

Produksjon:

Følgende utdata vises etter utføring av skriptet:



  p1

Eksempel 2: Bruk av klassen og objektet med flere metoder

I dette eksemplet inneholder pakken med navnet 'Produkter' to metoder. En metode er Init() som brukes til å initialisere de nødvendige variablene og referere til variablene med klassenavnet ved å bruke 'velsigne'-funksjonen. En annen metode som er calculate_price() brukes til å beregne rabattprisen på produktet.

#!/usr/bin/perl

bruk strenge ;
bruk advarsler ;
bruk 5.34.0 ;

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

#Definer konstruktøren
under Init
{
#Initialiser klassenavnet
mitt $className = skifte ;
#Initialiser variablene
$variabler = {

'Id' => skifte ,
'Navn' => skifte ,
'Pris' => skifte

} ;

#Angi referansen med referansen
velsigne $variabler , $className ;
#Returner referansevariabelen
komme tilbake $variabler ;
}

#Declare metode for å beregne rabattpris
under beregne_pris
{

min $rabattpris = $variabler- > { 'Pris' } - $variabler- > { 'Pris' } * 0,1 ;
si 'Avslags pris: \$ $rabatt_pris' ;

}

#Lag et objekt av klassen
min $proObj = Init produkt ( '6745' , 'Dell-skjerm' , femti ) ;

#Skriv ut verdiene til klassevariablene
si 'Produktinformasjon etter 10 \% rabatt: ' ;
si ' \n Id: $proObj->{'Id'}' ;
si 'Navn: $proObj->{'Name'}' ;
si 'Original pris: \$ $proObj->{'Price'}' ;

#Kall objektmetoden
$proObj- > beregne_pris ( ) ;

Produksjon:

Følgende utdata vises etter utføring av skriptet:

  s2

Eksempel 3: Bruke klassen ved å lage en modul

I dette eksemplet er den brukerdefinerte Perl-modulen opprettet i en egen fil kalt 'CalPower.pm' hvor 'velsigne'-funksjonen brukes. Lag denne filen med følgende Perl-skript. Denne modulen beregner 'x n ' der verdiene for 'x' og 'n' er gitt fra Perl-skriptet der denne modulen er importert.

#!/usr/bin/perl

bruk strenge ;
bruk advarsler ;
bruk 5.34.0 ;

#Definer pakkenavnet
pakken CalPower ;

#Definer konstruktøren
under Init
{
mitt $className = skifte ;
min $var =
{
Antall => skifte ,
makt => skifte
} ;

velsigne $var , $className ;
komme tilbake $var ;

}

#Definer metoden for å beregne effektverdien
sub Beregn
{
min $var = skifte ;
mitt $resultat = $var- > { 'Antall' } ;
til ( min $i = 1 ; $i < $var- > { 'makt' } ; $i++ )
{
$resultat = $var- > { 'Antall' } * $resultat ;
}
komme tilbake $resultat ;

}

Lag en Perl-fil med følgende skript hvor 'CalPower'-modulen importeres for å beregne kraften basert på inngangsverdien som er hentet fra brukeren.

#!/usr/bin/perl

bruk strenge ;
bruk advarsler ;
bruk 5.34.0 ;
bruk CalPower ;

#Ta basisverdien
skrive ut 'Skriv inn verdien av x:' ;
chomp ( min $x = <> ) ;
#Ta kraftventilen
skrive ut 'Skriv inn verdien av n:' ;
chomp ( min $n = <> ) ;

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

#Skriv ut den beregnede effektverdien
skrive ut '$x i potensen $n er' ;
si $Obj- > Regne ut ( ) ;

Produksjon:

Følgende utdata vises etter utføring av skriptet:

  s3

Konklusjon

Bruken av 'velsigne'-funksjonen i Perl vises i denne opplæringen ved å lage en pakke i den samme Perl-filen og lage en modul i en annen fil.