Syntaxis:
De syntaxis van de functie “bless” wordt hieronder gegeven. Deze functie kan worden gebruikt met één argument of met twee argumenten. Normaal gesproken wordt deze functie gebruikt met twee argumenten, waarbij het eerste argument de referentievariabele is en het tweede argument de klassenaam is waarnaar door het eerste argument wordt verwezen. Wanneer deze met één argumentwaarde wordt gebruikt, verwijst de referentievariabele naar het huidige pakket.
zegen ref
of
zegen ref , naam van de klasse
Verschillende voorbeelden van de Bless()-functie
Het gebruik van de functie bless() op meerdere manieren wordt in dit deel van de tutorial getoond.
Voorbeeld 1: gebruik van de eenvoudige klasse en het object
In dit voorbeeld bevat het pakket met de naam “Book” een subroutine die werkt als de constructormethode van de klasse. Hier wordt de functie “bless” gebruikt om de variabelen te relateren aan de klassenaam die wordt opgegeven op het moment dat de methode Init() wordt aangeroepen.
#!/usr/bin/perl
gebruik strikt ;
gebruik waarschuwingen ;
gebruik 5.34.0 ;
#Definieer het pakket
pakket Boek ;
#Definieer de constructor
onder Init
{
#Initialiseer de klassenaam
mijn $className = verschuiving ;
#Initialiseer de variabelen
mijn $variabelen = {
'Boeknaam' => verschuiving ,
'Auteur naam' => verschuiving ,
'Gepubliceerd jaar' => verschuiving ,
'Prijs' => verschuiving
} ;
#Stel de referentie in met de referent
zegen $variabelen , $klassenaam ;
#Retourneer de referentievariabele
opbrengst $variabelen ;
}
#Maak een object van de klasse
mijn $bookObj = Init Boek ( 'Perl leren' , 'Randal L. Schwartz' , 1993 , Vier vijf ) ;
#Print de waarden van de klassevariabelen
inspraak 'Boekgegevens:' ;
inspraak ' \N Boeknaam: $bookObj->{'Boeknaam'}' ;
inspraak 'Naam auteur: $bookObj->{'Naam auteur'}' ;
inspraak 'Gepubliceerd jaar: $bookObj->{'PublishedYear'}' ;
inspraak 'Prijs: \$ $bookObj->{'Prijs'}' ;
Uitgang:
De volgende uitvoer verschijnt na het uitvoeren van het script:
Voorbeeld 2: De klasse en het object gebruiken met meerdere methoden
In dit voorbeeld bevat het pakket met de naam “Producten” twee methoden. Eén methode is Init() die wordt gebruikt om de benodigde variabelen te initialiseren en naar de variabelen te verwijzen met de klassenaam met behulp van de functie “bless”. Een andere methode, namelijk 'calcul_price('), wordt gebruikt om de kortingsprijs van het product te berekenen.
#!/usr/bin/perlgebruik strikt ;
gebruik waarschuwingen ;
gebruik 5.34.0 ;
#Definieer het pakket
pakketproduct ;
mijn $variabelen = { } ;
#Definieer de constructor
onder Init
{
#Initialiseer de klassenaam
mijn $className = verschuiving ;
#Initialiseer de variabelen
$variabelen = {
'ID kaart' => verschuiving ,
'Naam' => verschuiving ,
'Prijs' => verschuiving
} ;
#Stel de referentie in met de referent
zegen $variabelen , $klassenaam ;
#Retourneer de referentievariabele
opbrengst $variabelen ;
}
#Declare-methode om de kortingsprijs te berekenen
sub bereken_prijs
{
mijn $discount_price = $variabelen- > { 'Prijs' } - $variabelen- > { 'Prijs' } * 0,1 ;
inspraak 'Kortingsprijs: \$ $kortingsprijs' ;
}
#Maak een object van de klasse
mijn $proObj = Init-product ( '6745' , 'Dell-monitor' , vijftig ) ;
#Print de waarden van de klassevariabelen
inspraak 'Productinformatie na 10 \% korting: ' ;
inspraak ' \N Id: $proObj->{'Id'}' ;
inspraak 'Naam: $proObj->{'Naam'}' ;
inspraak 'Originele prijs: \$ $proObj->{'Prijs'}' ;
#Roep de objectmethode aan
$proObj- > bereken_prijs ( ) ;
Uitgang:
De volgende uitvoer verschijnt na het uitvoeren van het script:
Voorbeeld 3: De klasse gebruiken door een module te maken
In dit voorbeeld wordt de door de gebruiker gedefinieerde Perl-module gemaakt in een apart bestand met de naam “CalPower.pm”, waarin de functie “bless” wordt gebruikt. Maak dit bestand met het volgende Perl-script. Deze module berekent de “x N “ waarbij de waarden “x” en “n” worden geleverd vanuit het Perl-script waarin deze module wordt geïmporteerd.
#!/usr/bin/perlgebruik strikt ;
gebruik waarschuwingen ;
gebruik 5.34.0 ;
#Definieer de pakketnaam
pakket CalPower ;
#Definieer de constructor
onder Init
{
mijn $className = verschuiving ;
mijn $var =
{
nummer => verschuiving ,
stroom => verschuiving
} ;
zegen $var , $klassenaam ;
opbrengst $var ;
}
#Definieer de methode om de vermogenswaarde te berekenen
sub Bereken
{
mijn $var = verschuiving ;
mijn $resultaat = $var- > { 'nummer' } ;
voor ( mijn $ik = 1 ; $ik < $var- > { 'stroom' } ; $i++ )
{
$resultaat = $var- > { 'nummer' } * $resultaat ;
}
opbrengst $resultaat ;
}
Maak een Perl-bestand met het volgende script waarin de module “CalPower” wordt geïmporteerd om het vermogen te berekenen op basis van de invoerwaarde die van de gebruiker wordt overgenomen.
#!/usr/bin/perlgebruik strikt ;
gebruik waarschuwingen ;
gebruik 5.34.0 ;
gebruik CalPower ;
#Neem de basiswaarde
afdrukken 'Voer de waarde van x in:' ;
kauw ( mijn $x = <> ) ;
#Neem het krachtdal
afdrukken 'Voer de waarde van n in:' ;
kauw ( mijn $n = <> ) ;
#Maak een object van de klasse
mijn $Obj = Start CalPower ( $x , $n ) ;
#Print de berekende vermogenswaarde
afdrukken '$x tot de macht $n is ' ;
zeg $Obj- > Berekenen ( ) ;
Uitgang:
De volgende uitvoer verschijnt na het uitvoeren van het script:
Conclusie
Het gebruik van de “bless”-functie in Perl wordt in deze tutorial getoond door een pakket in hetzelfde Perl-bestand te maken en een module in een ander bestand te maken.