Perl Bless -funktio

Perl Bless Funktio



Perlin olioohjelmoinnin syntaksi eroaa hieman tavallisista olioohjelmointikielistä, kuten Java, C++, Python jne. Paketin avainsanaa käytetään Perlissä luokan määrittämiseen Perlissä. Perlin objektin ja menetelmän määritys ovat samankaltaisia ​​kuin muuttujan ja aliohjelman määritys, mutta Perlin objektin ilmoittaminen viitteen ja referentin yhdistämiseksi eroaa muista ohjelmointikielistä. Bless()-funktiota käytetään tähän tehtävään. Bless-funktion käyttö Perlin olioohjelmointiin on esitetty tässä opetusohjelmassa.

Syntaksi:

'Bless'-funktion syntaksi on annettu seuraavassa. Tätä funktiota voidaan käyttää yhdellä tai kahdella argumentilla. Normaalisti tätä funktiota käytetään kahden argumentin kanssa, jolloin ensimmäinen argumentti on viitemuuttuja ja toinen argumentti on luokan nimi, johon ensimmäinen argumentti viittaa. Kun sitä käytetään yhden argumentin arvon kanssa, viitemuuttuja viittaa nykyiseen pakettiin.







siunaa ref

tai



siunaa ref , luokan nimi

Erilaisia ​​esimerkkejä Bless()-funktiosta

Bless()-funktion käyttö useilla tavoilla esitetään tässä opetusohjelman osassa.



Esimerkki 1: Yksinkertaisen luokan ja objektin käyttäminen

Tässä esimerkissä 'Book'-niminen paketti sisältää aliohjelman, joka toimii kuten luokan konstruktorimetodi. Tässä 'bless'-funktiota käytetään liittämään muuttujat luokan nimeen, joka on annettu Init()-metodin kutsun yhteydessä.





#!/usr/bin/perl

käytä tiukkaa ;
käyttää varoitukset ;
käytä 5.34.0 ;

#Määrittele paketti
paketti kirja ;
#Määrittele rakentaja
Initin alla
{
#Alusta luokan nimi
minun $className = siirtää ;
#Alusta muuttujat
$muuttujani = {
'BookName' => siirtää ,
'Kirjoittajan nimi' => siirtää ,
'Julkaisuvuosi' => siirtää ,
'Hinta' => siirtää
} ;

#Aseta viittaus referentin kanssa
siunaa $muuttujia , $className ;
#Palauta viitemuuttuja
palata $muuttujia ;
}

#Luo luokan objekti
minun $bookObj = Alkukirja ( 'Perlin oppiminen' , 'Randal L. Schwartz' , 1993 , Neljä viisi ) ;

#Tulosta luokkamuuttujien arvot
sanoa 'Kirjan tiedot:' ;
sanoa ' \n Kirjan nimi: $bookObj->{'BookName'}' ;
sanoa 'Kirjoittajan nimi: $bookObj->{'AuthorName'}' ;
sanoa 'Julkaisuvuosi: $bookObj->{'PublishedYear'}' ;
sanoa 'Hinta: \$ $bookObj->{'Price'}' ;

Lähtö:

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen:



  p1

Esimerkki 2: Luokan ja objektin käyttäminen useilla menetelmillä

Tässä esimerkissä 'Tuotteet'-niminen paketti sisältää kaksi menetelmää. Yksi menetelmä on Init(), jolla alustetaan tarvittavat muuttujat ja viitataan muuttujiin luokan nimellä 'bless'-funktiolla. Toista menetelmää, laskea_hinta(), käytetään tuotteen alennushinnan laskemiseen.

#!/usr/bin/perl

käytä tiukkaa ;
käyttää varoitukset ;
käytä 5.34.0 ;

#Määrittele paketti
paketti tuote ;
$muuttujani = { } ;

#Määrittele rakentaja
Initin alla
{
#Alusta luokan nimi
minun $className = siirtää ;
#Alusta muuttujat
$muuttujia = {

'Id' => siirtää ,
'Nimi' => siirtää ,
'Hinta' => siirtää

} ;

#Aseta viittaus referentin kanssa
siunaa $muuttujia , $className ;
#Palauta viitemuuttuja
palata $muuttujia ;
}

#Ilmoita menetelmä alennushinnan laskemiseksi
alilaske_hinta
{

minun $alennushintani = $muuttujat- > { 'Hinta' } - $muuttujat- > { 'Hinta' } * 0.1 ;
sanoa 'Alennushinta: \$ $alennushinta' ;

}

#Luo luokan objekti
minun $proObj = Alkutuote ( '6745' , 'Dell-näyttö' , viisikymmentä ) ;

#Tulosta luokkamuuttujien arvot
sanoa 'Tuotetiedot 10 jälkeen \% alennus: ' ;
sanoa ' \n Id: $proObj->{'Id'}' ;
sanoa 'Nimi: $proObj->{'Nimi'}' ;
sanoa 'Alkuperäinen hinta: \$ $proObj->{'Price'}' ;

#Kutsu objektimetodia
$proObj- > laske_hinta ( ) ;

Lähtö:

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen:

  p2

Esimerkki 3: Luokan käyttäminen luomalla moduuli

Tässä esimerkissä käyttäjän määrittämä Perl-moduuli luodaan erilliseen tiedostoon nimeltä “CalPower.pm”, jossa käytetään “bless”-toimintoa. Luo tämä tiedosto seuraavalla Perl-skriptillä. Tämä moduuli laskee 'x n ' jossa 'x':n ja 'n':n arvot saadaan Perl-komentosarjasta, johon tämä moduuli tuodaan.

#!/usr/bin/perl

käytä tiukkaa ;
käyttää varoitukset ;
käytä 5.34.0 ;

#Määritä paketin nimi
paketti CalPower ;

#Määrittele rakentaja
Initin alla
{
minun $className = siirtää ;
minun $var =
{
määrä => siirtää ,
tehoa => siirtää
} ;

siunaa $var , $className ;
palata $var ;

}

#Määritä menetelmä tehoarvon laskemiseksi
ala Laske
{
minun $var = siirtää ;
minun $tulokseni = $var- > { 'määrä' } ;
varten ( minun $i = 1 ; $i < $var- > { 'voima' } ; $i++ )
{
$tulos = $var- > { 'määrä' } * $tulos ;
}
palata $tulos ;

}

Luo Perl-tiedosto seuraavalla komentosarjalla, johon CalPower-moduuli tuodaan laskemaan teho käyttäjältä otetun syöttöarvon perusteella.

#!/usr/bin/perl

käytä tiukkaa ;
käyttää varoitukset ;
käytä 5.34.0 ;
käytä CalPoweria ;

#Ota perusarvo
Tulosta 'Anna x:n arvo:' ;
chomp ( minun $x = <> ) ;
#Ota voimavalo
Tulosta 'Anna n:n arvo:' ;
chomp ( minun $n = <> ) ;

#Luo luokan objekti
minun $Obj = Käynnistä CalPower ( $x , $n ) ;

#Tulosta laskettu tehoarvo
Tulosta '$x potenssiin $n on' ;
sano $Obj- > Laskea ( ) ;

Lähtö:

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen:

  p3

Johtopäätös

'Bless'-funktion käyttö Perlissä on esitetty tässä opetusohjelmassa luomalla paketti samaan Perl-tiedostoon ja luomalla moduuli eri tiedostoon.