A função Perl Bless

A Funcao Perl Bless



A sintaxe de programação orientada a objetos em Perl é um pouco diferente das linguagens de programação orientadas a objetos padrão, como Java, C++, Python, etc. A palavra-chave package é usada em Perl para definir uma classe em Perl. A declaração de objeto e método em Perl é semelhante à declaração de variável e sub-rotina, mas o método de declaração de um objeto em Perl para relacionar a referência e o referente é diferente de outras linguagens de programação. A função Blessed() é usada para realizar esta tarefa. Os usos da função Blessed para fazer programação orientada a objetos em Perl são mostrados neste tutorial.

Sintaxe:

A sintaxe da função “bless” é fornecida a seguir. Esta função pode ser usada com um ou dois argumentos. Normalmente, esta função é usada com dois argumentos onde o primeiro argumento é a variável de referência e o segundo argumento é o nome da classe referenciada pelo primeiro argumento. Quando usada com um valor de argumento, a variável de referência refere-se ao pacote atual.







abençoe a referência

ou



abençoe a referência , nome da classe

Diferentes exemplos da função Bless()

Os usos da função Blessed() de diversas maneiras são mostrados nesta parte do tutorial.



Exemplo 1: usando classe e objeto simples

Neste exemplo, o pacote denominado “Livro” contém uma sub-rotina que funciona como o método construtor da classe. Aqui, a função “bless” é usada para relacionar as variáveis ​​com o nome da classe que é fornecido no momento da chamada do método Init().





#!/usr/bin/perl

usar estrito ;
usar avisos ;
usar 5.34.0 ;

#Defina o pacote
pacote Livro ;
#Defina o construtor
em Inicialização
{
#Inicialize o nome da classe
meu $className = mudança ;
#Inicialize as variáveis
minhas $variáveis = {
'Nome do livro' => mudança ,
'Nome do autor' => mudança ,
'Ano Publicado' => mudança ,
'Preço' => mudança
} ;

#Defina a referência com o referente
abençoe $ variáveis , $className ;
#Retorna a variável de referência
retornar $variáveis ;
}

#Crie um objeto da classe
meu $livroObj = Livro de inicialização ( 'Aprendendo Perl' , 'Randal L. Schwartz' , 1993 , Quatro cinco ) ;

#Imprime os valores das variáveis ​​da classe
dizer 'Detalhes do livro:' ;
dizer ' \n Nome do livro: $bookObj->{'BookName'}' ;
dizer 'Nome do autor: $bookObj->{'AuthorName'}' ;
dizer 'Ano de publicação: $bookObj->{'PublishedYear'}' ;
dizer 'Preço: \$ $bookObj->{'Preço'}' ;

Saída:

A seguinte saída aparece após a execução do script:



  p1

Exemplo 2: Usando Classe e Objeto com Vários Métodos

Neste exemplo, o pacote denominado “Produtos” contém dois métodos. Um método é Init() que é usado para inicializar as variáveis ​​​​necessárias e referir-se às variáveis ​​​​com o nome da classe usando a função “bless”. Outro método que é calcul_price() é usado para calcular o preço com desconto do produto.

#!/usr/bin/perl

usar estrito ;
usar avisos ;
usar 5.34.0 ;

#Defina o pacote
pacote Produto ;
minhas $variáveis = { } ;

#Defina o construtor
em Inicialização
{
#Inicialize o nome da classe
meu $className = mudança ;
#Inicialize as variáveis
$variáveis = {

'Eu ia' => mudança ,
'Nome' => mudança ,
'Preço' => mudança

} ;

#Defina a referência com o referente
abençoe $ variáveis , $className ;
#Retorna a variável de referência
retornar $variáveis ;
}

#Declare método para calcular o preço com desconto
subcalcular_preço
{

meu $discount_price = $variáveis- > { 'Preço' } - $variáveis- > { 'Preço' } * 0,1 ;
dizer 'Preço com desconto: \$ $desconto_preço' ;

}

#Crie um objeto da classe
meu $proObj = Produto inicial ( '6745' , 'Monitor Dell' , cinquenta ) ;

#Imprime os valores das variáveis ​​da classe
dizer 'Informações do produto após 10 \% desconto: ' ;
dizer ' \n Id: $proObj->{'Id'}' ;
dizer 'Nome: $proObj->{'Nome'}' ;
dizer 'Preço original: \$ $proObj->{'Preço'}' ;

#Chama o método do objeto
$proObj- > calcular_preço ( ) ;

Saída:

A seguinte saída aparece após a execução do script:

  p2

Exemplo 3: Usando a classe criando um módulo

Neste exemplo, o módulo Perl definido pelo usuário é criado em um arquivo separado chamado “CalPower.pm” onde a função “bless” é usada. Crie este arquivo com o seguinte script Perl. Este módulo calcula o “x n “onde os valores de “x” e “n” são fornecidos do script Perl onde este módulo é importado.

#!/usr/bin/perl

usar estrito ;
usar avisos ;
usar 5.34.0 ;

#Defina o nome do pacote
pacote CalPower ;

#Defina o construtor
em Inicialização
{
meu $className = mudança ;
meu $var =
{
número => mudança ,
poder => mudança
} ;

abençoe $var , $className ;
retornar $var ;

}

#Defina o método para calcular o valor da potência
sub Calcular
{
meu $var = mudança ;
meu $resultado = $var- > { 'número' } ;
para ( meu $i = 1 ; $eu < $var- > { 'poder' } ; $i++ )
{
$resultado = $var- > { 'número' } *$resultado ;
}
retornar $resultado ;

}

Crie um arquivo Perl com o seguinte script onde o módulo “CalPower” é importado para calcular a potência com base no valor de entrada obtido do usuário.

#!/usr/bin/perl

usar estrito ;
usar avisos ;
usar 5.34.0 ;
usar CalPower ;

#Pegue o valor base
imprimir 'Insira o valor de x:' ;
mastigar ( meu $ x = <> ) ;
#Pegue o vale do poder
imprimir 'Insira o valor de n:' ;
mastigar ( meu $ n = <> ) ;

#Crie um objeto da classe
meu $ Obj = Iniciar CalPower ( $ x , $ n ) ;

#Imprime o valor da potência calculada
imprimir '$x elevado a $n é' ;
diga $ Obj- > Calcular ( ) ;

Saída:

A seguinte saída aparece após a execução do script:

  pág.3

Conclusão

Os usos da função “bless” em Perl são mostrados neste tutorial criando um pacote no mesmo arquivo Perl e criando um módulo em um arquivo diferente.