„Perl Bless“ funkcija

Perl Bless Funkcija



Objektinio programavimo sintaksė programoje Perl šiek tiek skiriasi nuo standartinių objektinio programavimo kalbų, tokių kaip Java, C++, Python ir kt. Paketo raktinis žodis naudojamas Perl programoje, norint apibrėžti klasę Perl. Objekto ir metodo deklaravimas „Perl“ yra panašus į kintamųjų ir paprogramių deklaraciją, tačiau „Perl“ objekto deklaravimo būdas susieti nuorodą ir referentą skiriasi nuo kitų programavimo kalbų. Šiai užduočiai atlikti naudojama funkcija bless(). Šioje pamokoje parodyta, kaip naudoti funkciją Bless, kad būtų galima atlikti objektinį programavimą Perl.

Sintaksė:

Funkcijos „palaiminti“ sintaksė pateikiama toliau. Ši funkcija gali būti naudojama su vienu ar dviem argumentais. Paprastai ši funkcija naudojama su dviem argumentais, kai pirmasis argumentas yra nuorodos kintamasis, o antrasis argumentas yra klasės pavadinimas, nurodytas pirmuoju argumentu. Kai jis naudojamas su viena argumento reikšme, nuorodos kintamasis nurodo dabartinį paketą.







palaimink ref

arba



palaimink ref , klasės pavadinimas

Skirtingi funkcijos Bless() pavyzdžiai

Šioje pamokos dalyje parodytas funkcijos bless() naudojimas įvairiais būdais.



1 pavyzdys: paprastos klasės ir objekto naudojimas

Šiame pavyzdyje pakete, pavadintame „Knyga“, yra paprogramė, kuri veikia kaip klasės konstruktoriaus metodas. Čia funkcija 'palaiminti' naudojama susieti kintamuosius su klasės pavadinimu, kuris pateikiamas iškviečiant metodą Init ().





#!/usr/bin/perl

naudoti griežtai ;
naudoti įspėjimai ;
naudoti 5.34.0 ;

#Apibrėžkite paketą
paketo knyga ;
#Apibrėžkite konstruktorių
pagal Init
{
#Inicijuokite klasės pavadinimą
mano $className = pamaina ;
#Inicijuokite kintamuosius
mano $kintamieji = {
'Knygos pavadinimas' => pamaina ,
'AuthorName' => pamaina ,
„Paskelbimo metai“ => pamaina ,
'Kaina' => pamaina
} ;

#Nustatykite nuorodą su nuoroda
palaimink $kintamuosius , $className ;
#Grąžinkite nuorodos kintamąjį
grąžinti $kintamieji ;
}

#Sukurkite klasės objektą
mano $bookObj = Init knyga ( „Mokytis Perlio“ , 'Randal L. Schwartz' , 1993 m , Keturi. Penki ) ;

#Atspausdinkite klasės kintamųjų reikšmes
pasakyti 'Išsami knygos informacija:' ;
pasakyti \n Knygos pavadinimas: $bookObj->{'BookName'}' ;
pasakyti 'Autoriaus vardas: $bookObj->{'AuthorName'}' ;
pasakyti 'Paskelbimo metai: $bookObj->{'PublishedYear'}' ;
pasakyti 'Kaina: \$ $bookObj->{'Price'}' ;

Išvestis:

Įvykdžius scenarijų pasirodo ši išvestis:



  p1

2 pavyzdys: Klasės ir objekto naudojimas su keliais metodais

Šiame pavyzdyje pakete, pavadintame „Produktai“, yra du metodai. Vienas iš metodų yra Init(), kuris naudojamas inicijuoti būtinus kintamuosius ir nurodyti kintamuosius klasės pavadinimu naudojant funkciją „palaiminti“. Kitas metodas, kuris yra apskaičiavimo_kaina(), naudojamas apskaičiuojant produkto nuolaidą.

#!/usr/bin/perl

naudoti griežtai ;
naudoti įspėjimai ;
naudoti 5.34.0 ;

#Apibrėžkite paketą
pakuotė Prekė ;
mano $kintamieji = { } ;

#Apibrėžkite konstruktorių
pagal Init
{
#Inicijuokite klasės pavadinimą
mano $className = pamaina ;
#Inicijuokite kintamuosius
$kintamieji = {

'ID' => pamaina ,
'Vardas' => pamaina ,
'Kaina' => pamaina

} ;

#Nustatykite nuorodą su nuoroda
palaimink $kintamuosius , $className ;
#Grąžinkite nuorodos kintamąjį
grąžinti $kintamieji ;
}

#Deklaruoti metodą nuolaidos kainai apskaičiuoti
subskaičiuoti_kaina
{

mano $ nuolaidos_kaina = $kintamieji- > { 'Kaina' } - $kintamieji- > { 'Kaina' } * 0.1 ;
pasakyti 'Kaina su nuolaida: \$ $discount_price' ;

}

#Sukurkite klasės objektą
mano $proObj = Pradinis produktas ( '6745' , 'Dell monitorius' , penkiasdešimt ) ;

#Atspausdinkite klasės kintamųjų reikšmes
pasakyti „Informacija apie produktą po 10 d \% nuolaida: ' ;
pasakyti \n ID: $proObj->{'Id'}' ;
pasakyti 'Vardas: $proObj->{'Name'}' ;
pasakyti 'Pradinė kaina: \$ $proObj->{'Price'}' ;

# Iškvieskite objekto metodą
$proObj- > apskaičiuoti_kaina ( ) ;

Išvestis:

Įvykdžius scenarijų pasirodo ši išvestis:

  p2

3 pavyzdys: Klasės naudojimas kuriant modulį

Šiame pavyzdyje vartotojo nustatytas Perl modulis sukuriamas atskirame faile pavadinimu „CalPower.pm“, kuriame naudojama funkcija „palaiminti“. Sukurkite šį failą naudodami šį Perl scenarijų. Šis modulis apskaičiuoja „x n “ kur „x“ ir „n“ reikšmės pateikiamos iš „Perl“ scenarijaus, į kurį importuojamas šis modulis.

#!/usr/bin/perl

naudoti griežtai ;
naudoti įspėjimai ;
naudoti 5.34.0 ;

#Apibrėžkite paketo pavadinimą
paketas CalPower ;

#Apibrėžkite konstruktorių
pagal Init
{
mano $className = pamaina ;
mano $var =
{
numerį => pamaina ,
galia => pamaina
} ;

palaiminti $var , $className ;
grąžinti $var ;

}

#Apibrėžkite galios vertės apskaičiavimo metodą
sub Apskaičiuoti
{
mano $var = pamaina ;
mano $ rezultatas = $var- > { 'skaičius' } ;
dėl ( mano $i = 1 ; $i < $var- > { 'galia' } ; $i++ )
{
$ rezultatas = $var- > { 'skaičius' } * $ rezultatas ;
}
grąžinti $ rezultatas ;

}

Sukurkite Perl failą su šiuo scenarijumi, į kurį importuojamas „CalPower“ modulis, kad būtų galima apskaičiuoti galią pagal įvesties vertę, paimtą iš vartotojo.

#!/usr/bin/perl

naudoti griežtai ;
naudoti įspėjimai ;
naudoti 5.34.0 ;
naudokite CalPower ;

#Paimkite bazinę vertę
spausdinti 'Įveskite x reikšmę:' ;
chomp ( mano $x = <> ) ;
#Paimk galios slėnį
spausdinti 'Įveskite n reikšmę:' ;
chomp ( mano $n = <> ) ;

#Sukurkite klasės objektą
mano $Obj = Įjunkite CalPower ( x $ , $n ) ;

#Atspausdinkite apskaičiuotą galios vertę
spausdinti '$x laipsniui $n yra' ;
sakyk $Obj- > Apskaičiuoti ( ) ;

Išvestis:

Įvykdžius scenarijų pasirodo ši išvestis:

  p3

Išvada

„Perl“ funkcijos „palaiminti“ naudojimas yra parodytas šioje pamokoje, sukuriant paketą tame pačiame „Perl“ faile ir sukuriant modulį kitame faile.