Die Perl Bless-Funktion

Die Perl Bless Funktion



Die objektorientierte Programmiersyntax in Perl unterscheidet sich ein wenig von den standardmäßigen objektorientierten Programmiersprachen wie Java, C++, Python usw. Das Schlüsselwort package wird in Perl verwendet, um eine Klasse in Perl zu definieren. Die Objekt- und Methodendeklaration in Perl ähnelt der Variablen- und Unterprogrammdeklaration, aber die Methode zur Deklaration eines Objekts in Perl, um die Referenz und den Referenten in Beziehung zu setzen, unterscheidet sich von anderen Programmiersprachen. Für diese Aufgabe wird die Funktion bless() verwendet. Die Verwendung der Bless-Funktion für die objektorientierte Programmierung in Perl wird in diesem Tutorial gezeigt.

Syntax:

Die Syntax der Funktion „bless“ ist im Folgenden angegeben. Diese Funktion kann mit einem oder zwei Argumenten verwendet werden. Normalerweise wird diese Funktion mit zwei Argumenten verwendet, wobei das erste Argument die Referenzvariable und das zweite Argument der Klassenname ist, auf den das erste Argument verweist. Bei Verwendung mit einem Argumentwert verweist die Referenzvariable auf das aktuelle Paket.







Segne Ref

oder



Segne Ref , Klassenname

Verschiedene Beispiele der Bless()-Funktion

In diesem Teil des Tutorials werden die vielfältigen Einsatzmöglichkeiten der Funktion bless() gezeigt.



Beispiel 1: Verwendung der einfachen Klasse und des einfachen Objekts

In diesem Beispiel enthält das Paket mit dem Namen „Book“ eine Unterroutine, die wie die Konstruktormethode der Klasse funktioniert. Hier wird die Funktion „bless“ verwendet, um die Variablen mit dem Klassennamen in Beziehung zu setzen, der zum Zeitpunkt des Aufrufs der Init()-Methode bereitgestellt wird.





#!/usr/bin/perl

verwenden Sie streng ;
verwenden Warnungen ;
Verwenden Sie 5.34.0 ;

#Definieren Sie das Paket
Paket Buch ;
#Definieren Sie den Konstruktor
unter Init
{
#Initialisieren Sie den Klassennamen
mein $className = Schicht ;
#Initialisieren Sie die Variablen
meine $variablen = {
'BookName' => Schicht ,
'Autorenname' => Schicht ,
„Veröffentlichtes Jahr“ => Schicht ,
'Preis' => Schicht
} ;

#Setzen Sie die Referenz mit dem Referenten
segne $variables , $className ;
#Referenzvariable zurückgeben
zurückkehren $Variablen ;
}

#Erstellen Sie ein Objekt der Klasse
mein $bookObj = Init-Buch ( „Perl lernen“ , „Randal L. Schwartz“ , 1993 , Vier fünf ) ;

#Drucken Sie die Werte der Klassenvariablen
sagen „Buchdetails:“ ;
sagen ' \N Buchname: $bookObj->{'BookName'}' ;
sagen „Autorenname: $bookObj->{'AuthorName'}“ ;
sagen „Veröffentlichtes Jahr: $bookObj->{‘PublishedYear‘}“ ;
sagen 'Preis: \$ $bookObj->{'Price'}' ;

Ausgabe:

Nach der Ausführung des Skripts erscheint folgende Ausgabe:



  p1

Beispiel 2: Verwendung der Klasse und des Objekts mit mehreren Methoden

In diesem Beispiel enthält das Paket mit dem Namen „Products“ zwei Methoden. Eine Methode ist Init(), die verwendet wird, um die notwendigen Variablen zu initialisieren und mit der Funktion „bless“ auf die Variablen mit dem Klassennamen zu verweisen. Eine andere Methode, berechne_preis(), wird verwendet, um den Rabattpreis des Produkts zu berechnen.

#!/usr/bin/perl

verwenden Sie streng ;
verwenden Warnungen ;
Verwenden Sie 5.34.0 ;

#Definieren Sie das Paket
Paket Produkt ;
meine $variablen = { } ;

#Definieren Sie den Konstruktor
unter Init
{
#Initialisieren Sie den Klassennamen
mein $className = Schicht ;
#Initialisieren Sie die Variablen
$Variablen = {

'Ausweis' => Schicht ,
'Name' => Schicht ,
'Preis' => Schicht

} ;

#Setzen Sie die Referenz mit dem Referenten
segne $variables , $className ;
#Referenzvariable zurückgeben
zurückkehren $Variablen ;
}

#Methode zur Berechnung des Rabattpreises deklarieren
sub berechne_preis
{

mein $discount_price = $Variablen- > { 'Preis' } - $Variablen- > { 'Preis' } * 0,1 ;
sagen 'Reduzierter Preis: \$ $discount_price' ;

}

#Erstellen Sie ein Objekt der Klasse
mein $proObj = Init-Produkt ( „6745“ , „Dell-Monitor“ , fünfzig ) ;

#Drucken Sie die Werte der Klassenvariablen
sagen „Produktinformationen nach 10 \% Rabatt: ' ;
sagen ' \N Id: $proObj->{'Id'}' ;
sagen „Name: $proObj->{'Name'}“ ;
sagen 'Original Preis: \$ $proObj->{'Preis'}' ;

#Rufen Sie die Objektmethode auf
$proObj- > berechne_preis ( ) ;

Ausgabe:

Nach der Ausführung des Skripts erscheint folgende Ausgabe:

  p2

Beispiel 3: Verwendung der Klasse durch Erstellen eines Moduls

In diesem Beispiel wird das benutzerdefinierte Perl-Modul in einer separaten Datei mit dem Namen „CalPower.pm“ erstellt, in der die Funktion „bless“ verwendet wird. Erstellen Sie diese Datei mit dem folgenden Perl-Skript. Dieses Modul berechnet die „x N „wobei die Werte von „x“ und „n“ aus dem Perl-Skript bereitgestellt werden, in das dieses Modul importiert wird.

#!/usr/bin/perl

verwenden Sie streng ;
verwenden Warnungen ;
Verwenden Sie 5.34.0 ;

#Definieren Sie den Paketnamen
Paket CalPower ;

#Definieren Sie den Konstruktor
unter Init
{
mein $className = Schicht ;
mein $var =
{
Nummer => Schicht ,
Leistung => Schicht
} ;

segne $var , $className ;
zurückkehren $var ;

}

#Definieren Sie die Methode zur Berechnung des Leistungswerts
Unter Berechnen
{
mein $var = Schicht ;
mein $ergebnis = $var- > { 'Nummer' } ;
für ( mein $i = 1 ; $i < $var- > { 'Leistung' } ; $i++ )
{
$ergebnis = $var- > { 'Nummer' } * $ergebnis ;
}
zurückkehren $ergebnis ;

}

Erstellen Sie eine Perl-Datei mit dem folgenden Skript, in das das Modul „CalPower“ importiert wird, um die Leistung basierend auf dem vom Benutzer übernommenen Eingabewert zu berechnen.

#!/usr/bin/perl

verwenden Sie streng ;
verwenden Warnungen ;
Verwenden Sie 5.34.0 ;
Verwenden Sie CalPower ;

#Nehmen Sie den Basiswert
drucken „Geben Sie den Wert von x ein:“ ;
kauen ( mein $x = <> ) ;
#Nimm das Kraftventil
drucken „Geben Sie den Wert von n ein:“ ;
kauen ( mein $n = <> ) ;

#Erstellen Sie ein Objekt der Klasse
mein $Obj = CalPower initiieren ( $x , $n ) ;

#Den berechneten Leistungswert drucken
drucken „$x hoch $n ist“ ;
sag $Obj- > Berechnung ( ) ;

Ausgabe:

Nach der Ausführung des Skripts erscheint folgende Ausgabe:

  p3

Abschluss

Die Verwendung der „Bless“-Funktion in Perl wird in diesem Tutorial gezeigt, indem ein Paket in derselben Perl-Datei und ein Modul in einer anderen Datei erstellt wird.