Ang Perl Bless Function

Ang Perl Bless Function



Ang object-oriented programming syntax sa Perl ay medyo naiiba sa karaniwang object-oriented na mga programming language tulad ng Java, C++, Python, atbp. Ang package na keyword ay ginagamit sa Perl upang tukuyin ang isang klase sa Perl. Ang object at method na deklarasyon sa Perl ay katulad ng variable at subroutine na deklarasyon ngunit ang paraan ng pagdedeklara ng object sa Perl para iugnay ang reference at ang referent ay iba sa ibang programming language. Ang bless() function ay ginagamit para gawin ang gawaing ito. Ang mga paggamit ng blessing function upang gawin ang object-oriented na programming sa Perl ay ipinapakita sa tutorial na ito.

Syntax:

Ang syntax ng function na 'bless' ay ibinibigay sa mga sumusunod. Ang function na ito ay maaaring gamitin sa isang argumento o dalawang argumento. Karaniwan, ang function na ito ay ginagamit sa dalawang argumento kung saan ang unang argumento ay ang reference variable at ang pangalawang argumento ay ang pangalan ng klase na tinutukoy ng unang argumento. Kapag ginamit ito sa isang halaga ng argumento, ang reference na variable ay tumutukoy sa kasalukuyang package.







pagpalain ang ref

o



pagpalain ang ref , pangalan ng klase

Iba't ibang Halimbawa ng Bless() Function

Ang paggamit ng bless() function sa maraming paraan ay ipinapakita sa bahaging ito ng tutorial.



Halimbawa 1: Paggamit ng Simpleng Klase at Bagay

Sa halimbawang ito, ang package na pinangalanang 'Book' ay naglalaman ng isang subroutine na gumagana tulad ng constructor method ng klase. Dito, ang function na 'bless' ay ginagamit upang iugnay ang mga variable sa pangalan ng klase na ibinigay sa oras ng pagtawag sa Init() na paraan.





#!/usr/bin/perl

gumamit ng mahigpit ;
gamitin mga babala ;
gamitin ang 5.34.0 ;

#Tukuyin ang pakete
package Book ;
#Tukuyin ang tagabuo
sa ilalim ng Init
{
#Initialize ang pangalan ng klase
ang aking $className = shift ;
#Initialize ang mga variable
ang aking mga $variable = {
'BookName' => shift ,
'AuthorName' => shift ,
'PublishedYear' => shift ,
'Presyo' => shift
} ;

#Itakda ang reference kasama ang referent
pagpalain ang $variable , $className ;
#Ibalik ang reference na variable
bumalik $mga variable ;
}

#Gumawa ng isang bagay ng klase
ang aking $bookObj = Init Book ( 'Pag-aaral ng Perl' , 'Randal L. Schwartz' , 1993 , Apat. Lima ) ;

#I-print ang mga halaga ng mga variable ng klase
sabihin 'Mga detalye ng libro:' ;
sabihin ' \n Pangalan ng Aklat: $bookObj->{'BookName'}' ;
sabihin 'Pangalan ng May-akda: $bookObj->{'AuthorName'}' ;
sabihin 'Na-publish na Taon: $bookObj->{'PublishedYear'}' ;
sabihin 'Presyo: \$ $bookObj->{'Price'}' ;

Output:

Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script:



  p1

Halimbawa 2: Paggamit ng Klase at Bagay na may Maramihang Pamamaraan

Sa halimbawang ito, ang package na pinangalanang 'Mga Produkto' ay naglalaman ng dalawang pamamaraan. Ang isang paraan ay Init() na ginagamit upang simulan ang mga kinakailangang variable at sumangguni sa mga variable na may pangalan ng klase gamit ang function na 'bless'. Ang isa pang paraan na kung saan ay kalkulahin_presyo() ay ginagamit upang kalkulahin ang diskwento na presyo ng produkto.

#!/usr/bin/perl

gumamit ng mahigpit ;
gamitin mga babala ;
gamitin ang 5.34.0 ;

#Tukuyin ang pakete
pakete ng Produkto ;
ang aking mga $variable = { } ;

#Tukuyin ang tagabuo
sa ilalim ng Init
{
#Initialize ang pangalan ng klase
ang aking $className = shift ;
#Initialize ang mga variable
$mga variable = {

'Id' => shift ,
'Pangalan' => shift ,
'Presyo' => shift

} ;

#Itakda ang reference kasama ang referent
pagpalain ang $variable , $className ;
#Ibalik ang reference na variable
bumalik $mga variable ;
}

#Declare method para kalkulahin ang discount price
subcalculate_price
{

ang aking $discount_price = $variables- > { 'Presyo' } - $mga variable- > { 'Presyo' } * 0.1 ;
sabihin 'Discount Presyo: \$ $discount_price' ;

}

#Gumawa ng isang bagay ng klase
ang aking $proObj = Init Product ( '6745' , 'Dell monitor' , limampu ) ;

#I-print ang mga halaga ng mga variable ng klase
sabihin 'Impormasyon ng produkto pagkatapos ng 10 \% diskwento: ' ;
sabihin ' \n Id: $proObj->{'Id'}' ;
sabihin 'Pangalan: $proObj->{'Pangalan'}' ;
sabihin 'Orihinal na presyo: \$ $proObj->{'Price'}' ;

#Tawagan ang object method
$proObj- > kalkulahin_presyo ( ) ;

Output:

Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script:

  p2

Halimbawa 3: Paggamit ng Klase sa pamamagitan ng Paggawa ng Module

Sa halimbawang ito, ang module ng Perl na tinukoy ng user ay ginawa sa isang hiwalay na file na pinangalanang 'CalPower.pm' kung saan ginagamit ang function na 'bless'. Gawin ang file na ito gamit ang sumusunod na Perl script. Kinakalkula ng modyul na ito ang “x n ' kung saan ang mga halaga ng 'x' at 'n' ay ibinigay mula sa Perl script kung saan ini-import ang module na ito.

#!/usr/bin/perl

gumamit ng mahigpit ;
gamitin mga babala ;
gamitin ang 5.34.0 ;

#Tukuyin ang pangalan ng package
pakete ng CalPower ;

#Tukuyin ang tagabuo
sa ilalim ng Init
{
ang aking $className = shift ;
ang aking $var =
{
numero => shift ,
kapangyarihan => shift
} ;

pagpalain si $var , $className ;
bumalik $var ;

}

#Tukuyin ang paraan upang makalkula ang halaga ng kapangyarihan
sub Kalkulahin
{
ang aking $var = shift ;
ang aking $resulta = $var- > { 'numero' } ;
para sa ( ang aking $i = 1 ; $i < $var- > { 'kapangyarihan' } ; $i++ )
{
$resulta = $var- > { 'numero' } * $resulta ;
}
bumalik $resulta ;

}

Gumawa ng Perl file na may sumusunod na script kung saan ini-import ang 'CalPower' module upang kalkulahin ang power batay sa input value na kinuha mula sa user.

#!/usr/bin/perl

gumamit ng mahigpit ;
gamitin mga babala ;
gamitin ang 5.34.0 ;
gumamit ng CalPower ;

#Kunin ang batayang halaga
print 'Ipasok ang halaga ng x:' ;
chomp ( ang aking $x = <> ) ;
#Kunin ang power vale
print 'Ipasok ang halaga ng n:' ;
chomp ( aking $n = <> ) ;

#Gumawa ng isang bagay ng klase
ang aking $Obj = Init ang CalPower ( $x , $n ) ;

#I-print ang kinakalkula na halaga ng kapangyarihan
print '$x sa kapangyarihan $n ay ' ;
sabihin mo si $Obj- > Kalkulahin ( ) ;

Output:

Lumilitaw ang sumusunod na output pagkatapos isagawa ang script:

  p3

Konklusyon

Ang paggamit ng function na 'bless' sa Perl ay ipinapakita sa tutorial na ito sa pamamagitan ng paggawa ng package sa parehong Perl file at paggawa ng module sa ibang file.