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:
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/perlusar 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:
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/perlusar 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/perlusar 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:
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.