A Perl Bless függvény

A Perl Bless Fuggveny



A Perl objektum-orientált programozási szintaxisa egy kicsit eltér a szabványos objektum-orientált programozási nyelvektől, mint például a Java, C++, Python stb. A csomag kulcsszót a Perlben egy osztály meghatározására használják a Perlben. A Perl objektum- és metódusdeklarációja hasonló a változó- és szubrutin-deklarációhoz, de az objektumok deklarálási módja a Perlben a hivatkozás és a referens összekapcsolása céljából eltér a többi programozási nyelvtől. A bless() függvény erre a feladatra szolgál. Ebben az oktatóanyagban bemutatjuk a bless függvény használatát a Perl objektumorientált programozására.

Szintaxis:

Az „áld” függvény szintaxisát a következőkben adjuk meg. Ez a függvény egy vagy két argumentummal használható. Általában ezt a függvényt két argumentummal használják, ahol az első argumentum a referenciaváltozó, a második pedig az osztálynév, amelyre az első argumentum hivatkozik. Ha egy argumentumértékkel használja, a referenciaváltozó az aktuális csomagra hivatkozik.







áld ref

vagy



áld ref , osztály név

Különböző példák a Bless() függvényre

Az oktatóanyag ezen része bemutatja a bless() függvény többféle felhasználását.



1. példa: Az egyszerű osztály és objektum használata

Ebben a példában a „Könyv” nevű csomag olyan szubrutint tartalmaz, amely az osztály konstruktor metódusához hasonlóan működik. Itt a „bless” függvény a változókat az Init() metódus meghívásakor megadott osztálynévvel való összekapcsolására használja.





#!/usr/bin/perl

szigorúat használj ;
használat figyelmeztetések ;
használd az 5.34.0-t ;

#Határozza meg a csomagot
csomag Könyv ;
#Határozza meg a konstruktort
az Init alatt
{
#Inicializálja az osztály nevét
az én $className = váltás ;
#Inicializálja a változókat
$változóim = {
'BookName' => váltás ,
'Szerző neve' => váltás ,
'Kiadás éve' => váltás ,
'Ár' => váltás
} ;

# Állítsa be a hivatkozást a referenssel
áldd meg a $változókat , $className ;
#A referenciaváltozó visszaadása
Visszatérés $változók ;
}

# Hozzon létre egy objektumot az osztályból
én $bookObj = Init könyv ( 'Perl tanulása' , 'Randal L. Schwartz' , 1993 , Négy öt ) ;

#Nyomtassa ki az osztályváltozók értékeit
mond 'A könyv adatai:' ;
mond ' \n Könyv neve: $bookObj->{'BookName'}' ;
mond 'Szerző neve: $bookObj->{'AuthorName'}' ;
mond 'Kiadás éve: $bookObj->{'PublishedYear'}' ;
mond 'Ár: \$ $bookObj->{'Price'}' ;

Kimenet:

A következő kimenet jelenik meg a szkript végrehajtása után:



  p1

2. példa: Az osztály és az objektum használata több módszerrel

Ebben a példában a „Termékek” nevű csomag két módszert tartalmaz. Az egyik metódus az Init(), amely a szükséges változók inicializálására és az osztálynévvel való hivatkozásra szolgál a „bless” függvény segítségével. Egy másik módszer, a számítás_ár() a termék kedvezményes árának kiszámítására szolgál.

#!/usr/bin/perl

szigorúat használj ;
használat figyelmeztetések ;
használd az 5.34.0-t ;

#Határozza meg a csomagot
csomag Termék ;
$változóim = { } ;

#Határozza meg a konstruktort
az Init alatt
{
#Inicializálja az osztály nevét
az én $className = váltás ;
#Inicializálja a változókat
$változók = {

'azonosító' => váltás ,
'Név' => váltás ,
'Ár' => váltás

} ;

# Állítsa be a hivatkozást a referenssel
áldd meg a $változókat , $className ;
#A referenciaváltozó visszaadása
Visszatérés $változók ;
}

#Declare módszer az akciós ár kiszámításához
alszámítási_ár
{

$kedvezményes_áram = $változók- > { 'Ár' } - $változók- > { 'Ár' } * 0.1 ;
mond 'Kedvezményes ár: \$ $ akciós_ár' ;

}

# Hozzon létre egy objektumot az osztályból
én $proObj = Init termék ( '6745' , 'Dell monitor' , ötven ) ;

#Nyomtassa ki az osztályváltozók értékeit
mond 'Termékinformáció 10 után \% kedvezmény: ' ;
mond ' \n Id: $proObj->{'Id'}' ;
mond 'Név: $proObj->{'Név'}' ;
mond 'Eredeti ár: \$ $proObj->{'Price'}' ;

#Hívja meg az objektum metódust
$proObj- > kalkul_ár ( ) ;

Kimenet:

A következő kimenet jelenik meg a szkript végrehajtása után:

  p2

3. példa: Az osztály használata modul létrehozásával

Ebben a példában a felhasználó által definiált Perl modul egy külön „CalPower.pm” nevű fájlban jön létre, ahol az „áldás” funkciót használjuk. Hozd létre ezt a fájlt a következő Perl-szkripttel. Ez a modul kiszámítja az „x n “ ahol az „x” és „n” értéke a Perl-szkriptből származik, amelybe a modult importálták.

#!/usr/bin/perl

szigorúat használj ;
használat figyelmeztetések ;
használd az 5.34.0-t ;

#Határozza meg a csomag nevét
csomag CalPower ;

#Határozza meg a konstruktort
az Init alatt
{
az én $className = váltás ;
én $var =
{
szám => váltás ,
erő => váltás
} ;

áldjon $var , $className ;
Visszatérés $var ;

}

#Határozza meg a teljesítményérték kiszámításának módszerét
al Számítsa ki
{
én $var = váltás ;
az én $eredményem = $var- > { 'szám' } ;
számára ( én $i = 1 ; $i < $var- > { 'erő' } ; $i++ )
{
$eredmény = $var- > { 'szám' } * $eredmény ;
}
Visszatérés $eredmény ;

}

Hozzon létre egy Perl-fájlt a következő szkripttel, amelybe a „CalPower” modul importálva van, hogy a felhasználótól vett bemeneti érték alapján kiszámítsa a teljesítményt.

#!/usr/bin/perl

szigorúat használj ;
használat figyelmeztetések ;
használd az 5.34.0-t ;
használja a CalPowert ;

#Vegye az alapértéket
nyomtatás 'Írja be x értékét:' ;
chomp ( én $x = <> ) ;
#Vegye a hatalom völgyét
nyomtatás 'Írja be az n értékét:' ;
chomp ( az én $n = <> ) ;

# Hozzon létre egy objektumot az osztályból
az én $Obj = Init CalPower ( $x , $n ) ;

#Nyomtassa ki a számított teljesítményértéket
nyomtatás '$x a $n hatványhoz' ;
mondd $Obj- > Kiszámítja ( ) ;

Kimenet:

A következő kimenet jelenik meg a szkript végrehajtása után:

  p3

Következtetés

Az „áldás” funkció Perlben való felhasználását ebben az oktatóanyagban mutatjuk be úgy, hogy egy csomagot hozunk létre ugyanabban a Perl-fájlban, és hozunk létre egy modult egy másik fájlban.