La funzione Perl Bless

La Funzione Perl Bless



La sintassi di programmazione orientata agli oggetti in Perl è leggermente diversa dai linguaggi di programmazione standard orientati agli oggetti come Java, C++, Python, ecc. La parola chiave package viene utilizzata in Perl per definire una classe in Perl. La dichiarazione dell'oggetto e del metodo in Perl sono simili alla dichiarazione della variabile e della subroutine, ma il metodo per dichiarare un oggetto in Perl per mettere in relazione il riferimento e il referente è diverso da altri linguaggi di programmazione. La funzione bless() viene utilizzata per eseguire questa attività. Gli usi della funzione bless per eseguire la programmazione orientata agli oggetti in Perl sono mostrati in questo tutorial.

Sintassi:

La sintassi della funzione “bless” è riportata di seguito. Questa funzione può essere utilizzata con uno o due argomenti. Normalmente, questa funzione viene utilizzata con due argomenti in cui il primo argomento è la variabile di riferimento e il secondo argomento è il nome della classe a cui fa riferimento il primo argomento. Quando viene utilizzata con un valore di argomento, la variabile di riferimento si riferisce al pacchetto corrente.







benedica rif

O



benedica rif , nome della classe

Diversi esempi della funzione Bless()

In questa parte del tutorial vengono mostrati gli usi della funzione bless() in diversi modi.



Esempio 1: utilizzo della classe e dell'oggetto semplici

In questo esempio, il pacchetto denominato “Book” contiene una subroutine che funziona come il metodo di costruzione della classe. Qui, la funzione “bless” viene utilizzata per mettere in relazione le variabili con il nome della classe fornito al momento della chiamata al metodo Init().





#!/usr/bin/perl

usare rigoroso ;
utilizzo avvertimenti ;
utilizzare 5.34.0 ;

#Definire il pacchetto
pacchetto Libro ;
#Definire il costruttore
sotto Init
{
#Inizializza il nome della classe
il mio $nomeclasse = spostare ;
#Inizializza le variabili
le mie variabili $ = {
'NomeLibro' => spostare ,
'Nome dell'autore' => spostare ,
'Anno di pubblicazione' => spostare ,
'Prezzo' => spostare
} ;

#Imposta il riferimento con il referente
benedici $variabili , $nomeclasse ;
#Restituisce la variabile di riferimento
ritorno $variabili ;
}

#Crea un oggetto della classe
il mio $bookObj = Libro iniziale ( 'Imparare il Perl' , 'Randal L. Schwartz' , 1993 , Quattro cinque ) ;

#Stampa i valori delle variabili della classe
Dire 'Dettagli del libro:' ;
Dire ' \N Nome del libro: $bookObj->{'BookName'}' ;
Dire 'Nome dell'autore: $bookObj->{'NomeAutore'}' ;
Dire 'Anno di pubblicazione: $bookObj->{'PublishedYear'}' ;
Dire 'Prezzo: \$ $bookObj->{'Prezzo'}' ;

Produzione:

Dopo l'esecuzione dello script viene visualizzato il seguente output:



  p1

Esempio 2: utilizzo della classe e dell'oggetto con più metodi

In questo esempio, il pacchetto denominato 'Prodotti' contiene due metodi. Un metodo è Init() che viene utilizzato per inizializzare le variabili necessarie e fare riferimento alle variabili con il nome della classe utilizzando la funzione “bless”. Un altro metodo,culate_price(), viene utilizzato per calcolare il prezzo scontato del prodotto.

#!/usr/bin/perl

usare rigoroso ;
utilizzo avvertimenti ;
utilizzare 5.34.0 ;

#Definire il pacchetto
pacchetto Prodotto ;
le mie variabili $ = { } ;

#Definire il costruttore
sotto Init
{
#Inizializza il nome della classe
il mio $nomeclasse = spostare ;
#Inizializza le variabili
$variabili = {

'Id' => spostare ,
'Nome' => spostare ,
'Prezzo' => spostare

} ;

#Imposta il riferimento con il referente
benedici $variabili , $nomeclasse ;
#Restituisce la variabile di riferimento
ritorno $variabili ;
}

Metodo #Dichiarare per calcolare il prezzo scontato
sottocalcola_prezzo
{

il mio $discount_price = $variabili- > { 'Prezzo' } - $variabili- > { 'Prezzo' } * 0,1 ;
Dire 'Prezzo scontato: \$ $prezzo_sconto' ;

}

#Crea un oggetto della classe
il mio $proObj = Prodotto iniziale ( '6745' , 'Monitor Dell' , cinquanta ) ;

#Stampa i valori delle variabili della classe
Dire 'Informazioni sul prodotto dopo le 10 \% sconto: ' ;
Dire ' \N ID: $proObj->{'Id'}' ;
Dire 'Nome: $proObj->{'Nome'}' ;
Dire 'Prezzo originale: \$ $proObj->{'Prezzo'}' ;

#Chiama il metodo dell'oggetto
$proObj- > calcola_prezzo ( ) ;

Produzione:

Dopo l'esecuzione dello script viene visualizzato il seguente output:

  p2

Esempio 3: utilizzo della classe creando un modulo

In questo esempio, il modulo Perl definito dall'utente viene creato in un file separato denominato 'CalPower.pm' dove viene utilizzata la funzione 'bless'. Crea questo file con il seguente script Perl. Questo modulo calcola il “x N ' dove i valori di 'x' e 'n' sono forniti dallo script Perl in cui viene importato questo modulo.

#!/usr/bin/perl

usare rigoroso ;
utilizzo avvertimenti ;
utilizzare 5.34.0 ;

#Definire il nome del pacchetto
pacchetto CalPower ;

#Definire il costruttore
sotto Init
{
il mio $nomeclasse = spostare ;
il mio $var =
{
numero => spostare ,
energia => spostare
} ;

benedici $var , $nomeclasse ;
ritorno $var ;

}

#Definire il metodo per calcolare il valore della potenza
sub Calcola
{
il mio $var = spostare ;
il mio $risultato = $var- > { 'numero' } ;
per ( il mio $i = 1 ; $i < $var- > { 'energia' } ; $i++ )
{
$risultato = $var- > { 'numero' } * $risultato ;
}
ritorno $risultato ;

}

Creare un file Perl con il seguente script in cui viene importato il modulo 'CalPower' per calcolare la potenza in base al valore di input preso dall'utente.

#!/usr/bin/perl

usare rigoroso ;
utilizzo avvertimenti ;
utilizzare 5.34.0 ;
utilizzare CalPower ;

#Prendi il valore base
stampa 'Inserisci il valore di x:' ;
masticare ( i miei $x = <> ) ;
#Prendi la valle del potere
stampa 'Inserisci il valore di n:' ;
masticare ( i miei $n = <> ) ;

#Crea un oggetto della classe
il mio $Obj = Inizializza CalPower ( $x , $n ) ;

#Stampa il valore della potenza calcolata
stampa '$x elevato alla potenza $n è ' ;
dì $Obj- > Calcolare ( ) ;

Produzione:

Dopo l'esecuzione dello script viene visualizzato il seguente output:

  p3

Conclusione

Gli usi della funzione 'bless' in Perl sono mostrati in questo tutorial creando un pacchetto nello stesso file Perl e creando un modulo in un file diverso.