Funkcija Perl Bless

Funkcija Perl Bless



Sintaksa objektno usmerjenega programiranja v Perlu se nekoliko razlikuje od standardnih objektno usmerjenih programskih jezikov, kot so Java, C++, Python itd. Ključna beseda package se v Perlu uporablja za definiranje razreda v Perlu. Deklaracija objekta in metode v Perlu je podobna deklaraciji spremenljivke in podprograma, vendar se metoda deklariranja predmeta v Perlu za povezavo sklica in referenta razlikuje od drugih programskih jezikov. Za to nalogo se uporablja funkcija bless(). V tej vadnici so prikazane uporabe funkcije bless za objektno usmerjeno programiranje v Perlu.

Sintaksa:

Sintaksa funkcije »bless« je podana v nadaljevanju. To funkcijo lahko uporabite z enim ali dvema argumentoma. Običajno se ta funkcija uporablja z dvema argumentoma, kjer je prvi argument referenčna spremenljivka, drugi argument pa ime razreda, na katerega se sklicuje prvi argument. Ko je uporabljena z eno vrednostjo argumenta, se referenčna spremenljivka nanaša na trenutni paket.







blagoslovi ref

oz



blagoslovi ref , ime razreda

Različni primeri funkcije Bless().

V tem delu vadnice je prikazana uporaba funkcije bless() na več načinov.



1. primer: uporaba preprostega razreda in predmeta

V tem primeru paket z imenom »Knjiga« vsebuje podprogram, ki deluje kot metoda konstruktorja razreda. Tu se funkcija »blagoslovi« uporablja za povezavo spremenljivk z imenom razreda, ki je na voljo v času klica metode Init().





#!/usr/bin/perl

uporabite strogo ;
uporaba opozorila ;
uporabi 5.34.0 ;

#Določite paket
paket Knjiga ;
#Definiraj konstruktor
pod Init
{
#Inicializiraj ime razreda
moj $className = premik ;
#Inicializiraj spremenljivke
moje spremenljivke $ = {
'Ime knjige' => premik ,
'AuthorName' => premik ,
'Leto objave' => premik ,
'Cena' => premik
} ;

#Nastavite referenco z referentom
blagoslovi $spremenljivke , $className ;
#Vrni referenčno spremenljivko
vrnitev $spremenljivke ;
}

#Ustvari predmet razreda
moj $bookObj = Začetna knjiga ( 'Učenje Perla' , 'Randal L. Schwartz' , 1993 , Štiri, pet ) ;

#Natisni vrednosti spremenljivk razreda
reči 'Podrobnosti o knjigi:' ;
reči ' \n Ime knjige: $bookObj->{'BookName'}' ;
reči 'Ime avtorja: $bookObj->{'AuthorName'}' ;
reči 'Leto izdaje: $bookObj->{'PublishedYear'}' ;
reči 'Cena: \$ $bookObj->{'Price'}' ;

Izhod:

Po izvedbi skripta se prikaže naslednji rezultat:



  p1

Primer 2: Uporaba razreda in predmeta z več metodami

V tem primeru paket z imenom »Products« vsebuje dve metodi. Ena metoda je Init(), ki se uporablja za inicializacijo potrebnih spremenljivk in sklicevanje na spremenljivke z imenom razreda z uporabo funkcije »bless«. Za izračun znižane cene izdelka se uporablja še ena metoda, ki je izračunaj_price().

#!/usr/bin/perl

uporabite strogo ;
uporaba opozorila ;
uporabi 5.34.0 ;

#Določite paket
paket Izdelek ;
moje spremenljivke $ = { } ;

#Definiraj konstruktor
pod Init
{
#Inicializiraj ime razreda
moj $className = premik ;
#Inicializiraj spremenljivke
$spremenljivke = {

'ID' => premik ,
'Ime' => premik ,
'Cena' => premik

} ;

#Nastavite referenco z referentom
blagoslovi $spremenljivke , $className ;
#Vrni referenčno spremenljivko
vrnitev $spremenljivke ;
}

#Declare metoda za izračun diskontne cene
podizračun_cene
{

moja $discount_price = $spremenljivke- > { 'Cena' } - $spremenljivke- > { 'Cena' } * 0,1 ;
reči 'Cena s popustom: \$ $discount_price' ;

}

#Ustvari predmet razreda
moj $proObj = Zaženi izdelek ( '6745' , 'Monitor Dell' , petdeset ) ;

#Natisni vrednosti spremenljivk razreda
reči 'Informacije o izdelku po 10 \% popust: ' ;
reči ' \n ID: $proObj->{'Id'}' ;
reči 'Ime: $proObj->{'Name'}' ;
reči 'Prvotna cena: \$ $proObj->{'Price'}' ;

#Pokliči objektno metodo
$proObj- > izračunaj_ceno ( ) ;

Izhod:

Po izvedbi skripta se prikaže naslednji rezultat:

  p2

Primer 3: Uporaba razreda z ustvarjanjem modula

V tem primeru je uporabniško definiran modul Perl ustvarjen v ločeni datoteki z imenom »CalPower.pm«, kjer je uporabljena funkcija »bless«. Ustvarite to datoteko z naslednjim skriptom Perl. Ta modul izračuna 'x n « kjer sta vrednosti »x« in »n« podani iz skripta Perl, v katerega je uvožen ta modul.

#!/usr/bin/perl

uporabite strogo ;
uporaba opozorila ;
uporabi 5.34.0 ;

#Določite ime paketa
paket CalPower ;

#Definiraj konstruktor
pod Init
{
moj $className = premik ;
moj $var =
{
število => premik ,
moč => premik
} ;

blagoslovi $var , $className ;
vrnitev $var ;

}

#Določite metodo za izračun vrednosti moči
sub Izračunaj
{
moj $var = premik ;
moj $rezultat = $var- > { 'število' } ;
za ( moj $i = 1 ; $i < $var- > { 'moč' } ; $i++ )
{
$rezultat = $var- > { 'število' } * $rezultat ;
}
vrnitev $rezultat ;

}

Ustvarite datoteko Perl z naslednjim skriptom, kjer je uvožen modul »CalPower« za izračun moči na podlagi vhodne vrednosti, ki jo vzame uporabnik.

#!/usr/bin/perl

uporabite strogo ;
uporaba opozorila ;
uporabi 5.34.0 ;
uporabite CalPower ;

#Vzemite osnovno vrednost
tiskanje 'Vnesite vrednost x:' ;
žvečiti ( moj $x = <> ) ;
#Vzemite moč
tiskanje 'Vnesite vrednost n:' ;
žvečiti ( moj $n = <> ) ;

#Ustvari predmet razreda
moj $Obj = Zaženi CalPower ( $x , $n ) ;

#Natisnite izračunano vrednost moči
tiskanje '$x na potenco $n je ' ;
reci $Obj- > Izračunaj ( ) ;

Izhod:

Po izvedbi skripta se prikaže naslednji rezultat:

  p3

Zaključek

Uporaba funkcije »bless« v Perlu je prikazana v tej vadnici z ustvarjanjem paketa v isti datoteki Perl in ustvarjanjem modula v drugi datoteki.