Variáveis em Perl são usadas para armazenar e manipular dados em todo o programa. Quando uma variável é criada, ela ocupa espaço na memória. O tipo de dados de uma variável ajuda o interpretador a alocar memória e decidir o que armazenar na memória reservada. Portanto, as variáveis ​​podem armazenar inteiros, decimais ou strings com a atribuição de diferentes tipos de dados às variáveis. 

Nomenclatura de uma variável

Uma variável em Perl pode receber qualquer nome com o uso de um tipo de dados específico. Existem algumas regras a seguir ao nomear uma variável: 

  • Variáveis ​​em Perl diferenciam maiúsculas de minúsculas. 
     

Exemplo: 

$John and $john are two different variables
  • Começa com $, @ ou% de acordo com o tipo de dados exigido, seguido por zero ou mais letras, sublinhados e dígitos
  • Variáveis ​​em Perl não podem conter espaços em branco ou qualquer outro caractere especial, exceto sublinhado. 

Exemplo:

$my-name = "John"; // Invalid 
$my name = "John"; // Invalid
$my_name = "John"; // Valid
Declaração de uma variável

  
A declaração da variável é feita com base no tipo de dados usado para definir a variável. Essas variáveis ​​podem ser de três tipos de dados diferentes: 
 

  • Variáveis ​​escalares: contém uma única string ou valor numérico. Ele começa com o símbolo $. 
     

Sintaxe: $var_name = value;

Exemplo: 

$item = "Hello" 
$item_one = 2
  • Variáveis ​​de array: contém um conjunto de valores ordenados aleatoriamente. Ele começa com o símbolo @. 

Sintaxe: @var_name = (val1, val2, val3,… ..);

Exemplo: 

@price_list = (70, 30, 40);
@name_list = ("Apple", "Banana", "Guava");
  • Variáveis ​​hash: contém par (chave, valor) acessado de forma eficiente por chave. Começa com o símbolo%. 

Sintaxe: % var_name = (chave1 => val1, chave2 => val2, chave3 => val3,… ..);

Exemplo: 

%item_pairs = ("Apple" =>2, "Banana'=>3);
%pair_random = ("Hi" =>8, "Bye"=>9);
Modificação de uma variável

  
Perl permite modificar seus valores de variáveis ​​a qualquer momento após a declaração da variável ser feita. Existem várias maneiras de modificar uma variável:
 

  • Uma variável escalar pode ser modificada simplesmente redefinindo seu valor. 

Exemplo: 

$name = "John";

# This can be modified by simply
# redeclaring the variable $name.
$name = "Rahul";
  • Um elemento de uma array pode ser modificado passando o índice desse elemento para a array e definindo um novo valor para ele. 

Exemplo: 

@array = ("A", "B", "C", "D", "E");

# If value of second variable is to
# be modified then it can be done by
@array[2] = "4";
# $array[2]  = "4"; is an alternate way of updating value in an array.

# This will change the array to,
# @array = ("A", "B", "4", "D", "E");
  • Um valor em um hash pode ser modificado usando sua chave. 

Exemplo: 

%Hash = ("A", 10, "B", 20, "C", 30)

# This will modify the value 
# assigned to Key 'B'
$Hash{"B"} = 46;
Interpolação Variável

  
Perl fornece vários métodos para definir uma String para uma variável. Isso pode ser feito com o uso de aspas simples, aspas duplas, usando o operador q e o operador q duplo, etc. 
Usar aspas simples e aspas duplas para escrever strings é o mesmo, mas existe uma pequena diferença entre como eles funcionam. Strings que são gravadas com o uso de aspas simples exibem o conteúdo escrito exatamente como está. 
 

Exemplo:

$name = "John"
print 'Hi $name\nHow are you?' 

O código acima irá imprimir:

Hi $name\nHow are you?

Enquanto as strings escritas entre aspas substituem as variáveis ​​por seus valores e, em seguida, exibem a string. Ele até substitui as sequências de escape por seu uso real.
Exemplo: 

$name = "John"
print "Hi $name\nHow are you?" 

O código acima irá imprimir: 

Hi John
How are you?

Código de exemplo: 

#!/usr/bin/perl
use Data::Dumper;
 
# Scalar Variable
$name = "GeeksForGeeks";
 
# Array Variable
@array = ("G", "E", "E", "K", "S");
 
# Hash Variable
%Hash = ('Welcome', 10, 'to', 20, 'Geeks', 40);
 
# Variable Modification
@array[2] = "F";
 
print "Modified Array is @array\n";
 
# Interpolation of a Variable
 
# Using Single Quote
print 'Name is $name\n';
 
# Using Double Quotes
print "\nName is $name";
 
# Printing hash contents
print Dumper(\%Hash);
Saída: 
A array modificada é GEFKS
O nome é $name \ n
O nome é GeeksForGeeks $VAR1 = {
          'para' => 20,
          'Bem-vindo' => 10,
          'Geeks' => 40
        };