Perl | Referências
Em Perl, usamos variáveis para acessar dados armazenados em um local da memória (todos os dados e funções são armazenados na memória). Variáveis são atribuídas com valores de dados que são usados em várias operações. Referência Perl é uma forma de acessar os mesmos dados, mas com uma variável diferente. Uma referência em Perl é um tipo de dado escalar que contém a localização de outra variável. Outra variável pode ser escalar, hashes, arrays, nome da função, etc. A estrutura de dados aninhada pode ser criada facilmente, pois um usuário pode criar uma lista que contém as referências a outra lista que pode conter ainda as referências a arrays, escalares ou hashes etc.
Criação de Referência
Você pode criar referências para valor escalar , hash, array, função, etc. Para criar uma referência, defina uma nova variável escalar e atribua a ela o nome da variável (cuja referência você deseja criar) prefixando-a com uma barra invertida.
Exemplos: Fazendo referências de diferentes tipos de dados:
# Array Reference # defining array @array = ('1', '2', '3'); # making reference of array variable $reference_array = \@array;
# Hash Reference # defining hash %hash = ('1'=>'a', '2'=>'b', '3'=>'c'); # make reference of the hash variable $reference_hash = \%hash;
# Scalar Value Reference # defining scalar $scalar_val = 1234; # making reference of scalar variable $reference_scalar = \$scalar_val;
Observação:
- Uma referência a um hash anônimo pode ser criada usando as chaves {} ao redor dos pares de chave e valor.
Exemplo:
# criando referência para hash anônimo $ref_to_anonymous_hash = {'GFG' => '1', 'Geeks' => '2'};
- Uma referência a uma array anônima pode ser criada usando os colchetes [] .
Exemplo:
# criando referência a uma array anônima $ref_to_anonymous_array = [20, 30, ['G', 'F', 'G']];
- Uma referência a uma sub-rotina anônima também pode ser criada com a ajuda de sub . Aqui não haverá nome para o sub .
Exemplo:
# criando referência a uma sub-rotina anônima $ref_to_anonymous_subroutine = sub {print "GeeksforGeeks \ n"};
- Uma referência a um identificador de entrada / saída, ou seja, dirhandle e filehandle não pode ser criada.
Desreferenciamento
Agora, depois de fazer a referência, precisamos usá-la para acessar o valor. A desreferenciação é a forma de acessar o valor da memória apontado pela referência. Para desreferenciar, usamos o prefixo $, @,% ou & dependendo do tipo da variável (uma referência pode apontar para um array, escalar ou hash etc).
Exemplo 1:
# Perl program to illustrate the
# Dereferencing of an Array
# defining an array
@array = ('1', '2', '3');
# making an reference to an array variable
$reference_array = \@array;
# Dereferencing
# printing the value stored
# at $reference_array by prefixing
# @ as it is a array reference
print @$reference_array;
123
Exemplo 2:
# Perl program to illustrate the
# Dereferencing of a Hash
# defining hash
%hash = ('1'=>'a', '2'=>'b', '3'=>'c');
# creating an reference to hash variable
$reference_hash = \%hash;
# Dereferencing
# printing the value stored
# at $reference_hash by prefixing
# % as it is a hash reference
print %$reference_hash;
3c2b1a
Exemplo 3:
# Perl program to illustrate the
# Dereferencing of a Scalar
# defining a scalar
$scalar = 1234;
# creating an reference to scalar variable
$reference_scalar = \$scalar;
# Dereferencing
# printing the value stored
# at $reference_scalar by prefixing
# $ as it is a Scalar reference
print $$reference_scalar;
1234
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva