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:
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/perlkasutage 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:
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/perlkasutage 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/perlkasutage 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:
Järeldus
Selles õpetuses näidatakse Perli funktsiooni õnnistamist, luues paketi samas Perli failis ja luues mooduli teises failis.