Perli õnnistamisfunktsioon

Perli Onnistamisfunktsioon



Perli objektorienteeritud programmeerimise süntaks erineb veidi standardsetest objektorienteeritud programmeerimiskeeltest, nagu Java, C++, Python jne. Paketi märksõna kasutatakse Perlis Perlis klassi määratlemiseks. Objekti ja meetodi deklaratsioon Perlis on sarnased muutuja ja alamprogrammi deklaratsiooniga, kuid objekti deklareerimise meetod Perlis viite ja referendi seostamiseks erineb teistest programmeerimiskeeltest. Selle ülesande täitmiseks kasutatakse funktsiooni bless(). Selles õpetuses on näidatud, kuidas Perlis objektorienteeritud programmeerimiseks kasutada funktsiooni Bless.

Süntaks:

Funktsiooni 'Õnnista' süntaks on toodud allpool. Seda funktsiooni saab kasutada ühe või kahe argumendiga. Tavaliselt kasutatakse seda funktsiooni kahe argumendiga, kus esimene argument on viitemuutuja ja teine ​​argument on klassi nimi, millele viitab esimene argument. Kui seda kasutatakse ühe argumendi väärtusega, viitab viitemuutuja praegusele paketile.







õnnista ref

või



õnnista ref , klassi nimi

Funktsiooni Bless() erinevad näited

Selles õpetuse osas kirjeldatakse funktsiooni bless() kasutamist mitmel viisil.



Näide 1: Lihtsa klassi ja objekti kasutamine

Selles näites sisaldab pakett nimega 'Raamat' alamprogrammi, mis töötab nagu klassi konstruktori meetod. Siin kasutatakse funktsiooni 'bless' muutujate seostamiseks klassinimega, mis on antud meetodi Init() kutsumise ajal.





#!/usr/bin/perl

kasutage ranget ;
kasutada hoiatused ;
kasuta 5.34.0 ;

#Defineerige pakett
pakett Raamat ;
#Defineerige konstruktor
all Init
{
#Initsialiseerige klassi nimi
minu $className = nihe ;
#Initsialiseerige muutujad
minu $muutujad = {
'BookName' => nihe ,
'Autori nimi' => nihe ,
'Avaldamisaasta' => nihe ,
'hind' => nihe
} ;

#Määrake viide koos referendiga
õnnista $muutujaid , $className ;
#Tagastab viitemuutuja
tagasi $muutujad ;
}

#Loo klassi objekt
minu $bookObj = Init raamat ( 'Perli õppimine' , 'Randal L. Schwartz' , 1993. aasta , Neli, viis ) ;

#Trüki klassi muutujate väärtused
öelda 'Raamatu üksikasjad:' ;
öelda ' \n Raamatu nimi: $bookObj->{'BookName'}' ;
öelda 'Autori nimi: $bookObj->{'AuthorName'}' ;
öelda 'Avaldamisaasta: $bookObj->{'PublishedYear'}' ;
öelda 'Hind: \$ $bookObj->{'Price'}' ;

Väljund:

Pärast skripti käivitamist kuvatakse järgmine väljund:



  p1

Näide 2: klassi ja objekti kasutamine mitme meetodi abil

Selles näites sisaldab pakett nimega 'Tooted' kahte meetodit. Üks meetod on Init(), mida kasutatakse vajalike muutujate lähtestamiseks ja klassinimega muutujatele funktsiooni 'bless' abil viitamiseks. Toote soodushinna arvutamiseks kasutatakse teist meetodit arvutada_hind().

#!/usr/bin/perl

kasutage ranget ;
kasutada hoiatused ;
kasuta 5.34.0 ;

#Defineerige pakett
pakend Toode ;
minu $muutujad = { } ;

#Defineerige konstruktor
all Init
{
#Initsialiseerige klassi nimi
minu $className = nihe ;
#Initsialiseerige muutujad
$muutujad = {

'Id' => nihe ,
'nimi' => nihe ,
'hind' => nihe

} ;

#Määrake viide koos referendiga
õnnista $muutujaid , $className ;
#Tagastab viitemuutuja
tagasi $muutujad ;
}

#Deklareeri meetod soodushinna arvutamiseks
alamarvuta_hind
{

minu $soodushind = $muutujad- > { 'hind' } - $muutujad- > { 'hind' } * 0.1 ;
öelda 'Soodushind: \$ $soodushind' ;

}

#Loo klassi objekt
minu $proObj = Algtoode ( '6745' , 'Delli monitor' , viiskümmend ) ;

#Trüki klassi muutujate väärtused
öelda 'Tooteteave pärast 10 \% allahindlus: ' ;
öelda ' \n Id: $proObj->{'Id'}' ;
öelda 'Nimi: $proObj->{'Name'}' ;
öelda 'Algne hind: \$ $proObj->{'Price'}' ;

#Kutsu objektmeetodit
$proObj- > arvuta_hind ( ) ;

Väljund:

Pärast skripti käivitamist kuvatakse järgmine väljund:

  p2

Näide 3: Klassi kasutamine mooduli loomise teel

Selles näites luuakse kasutaja määratud Perli moodul eraldi failis nimega 'CalPower.pm', kus kasutatakse funktsiooni 'õnnista'. Looge see fail järgmise Perli skriptiga. See moodul arvutab 'x n “ kus “x” ja “n” väärtused saadakse Perli skriptist, kuhu see moodul imporditakse.

#!/usr/bin/perl

kasutage ranget ;
kasutada hoiatused ;
kasuta 5.34.0 ;

#Määrake paketi nimi
pakett CalPower ;

#Defineerige konstruktor
all Init
{
minu $className = nihe ;
minu $var =
{
number => nihe ,
võimsus => nihe
} ;

õnnista $var , $className ;
tagasi $var ;

}

#Määrake võimsuse väärtuse arvutamise meetod
sub Arvuta
{
minu $var = nihe ;
minu $tulemus = $var- > { 'number' } ;
jaoks ( minu $i = 1 ; $i < $var- > { 'jõud' } ; $i++ )
{
$tulemus = $var- > { 'number' } * $tulemus ;
}
tagasi $tulemus ;

}

Looge järgmise skriptiga Perli fail, kuhu imporditakse moodul 'CalPower', et arvutada kasutajalt võetud sisendväärtuse põhjal võimsus.

#!/usr/bin/perl

kasutage ranget ;
kasutada hoiatused ;
kasuta 5.34.0 ;
kasutage CalPowerit ;

#Võtke baasväärtus
printida 'Sisestage x väärtus:' ;
chomp ( minu $x = <> ) ;
#Võtke vägivalda
printida 'Sisestage n väärtus:' ;
chomp ( minu $n = <> ) ;

#Loo klassi objekt
minu $Obj = Käivitage CalPower ( $x , $n ) ;

#Prindige arvutatud võimsuse väärtus
printida '$x astmele $n on' ;
ütle $Obj- > Arvutama ( ) ;

Väljund:

Pärast skripti käivitamist kuvatakse järgmine väljund:

  p3

Järeldus

Selles õpetuses näidatakse Perli funktsiooni õnnistamist, luues paketi samas Perli failis ja luues mooduli teises failis.