Ir para o conteúdo

Variáveis em Perl

Desta vez irei focar as declarações de variáveis. Em Perl só existem três tipos de variáveis. Estas são divididas por hashes, scalar e array. A declaração de variáveis em Perl é um pouco diferente das linguagens mais comuns de programação.

Antes de tudo, o que é uma variável e como se caracteriza? Uma variável é um "objecto" que contem informação útil para o contexto de programação. Uma variável é caracterizada por 3 coisas:

  1. Nome: Nas boas práticas de programação devemos nomear as variáveis da seguinte forma:
    • Primeiro carácter tem que ser uma letra;
    • Podem-se utilizar números no nome da variável, mas nunca como primeiro carácter;
    • Segundo as regras de boa programação os nomes das variáveis tem que estar em minúsculas;
    • Caso seja uma junção de palavras, a segunda palavra tem que ser em maiúsculas. Ex: testePL.
  2. Tipo de variável: Em Perl os tipos de variáveis são hash (%), array (@), e scalar($). Para quem de vem de fora pode achar estranho não ter que declarar se uma variável escalar é do tipo integer, float, string, etc. Isto porque o Perl identifica isso de forma autónoma.
  3. Valor: o valor que a variável vai ter perante o programa. Este valor pode ser escalar, do tipo array ou hash.

Variável Escalar

Uma variável escalar é uma variável que só tem um elemento/valor atribuído. Com isto não quero dizer que só pode ter um número ou só pode ter uma palavra. Porque podemos criar um valor com várias palavras ou com vários números.

 my $nome = Rubem ; 
 my $morada = "Portugal , União Europeia";

#Atenção caso se queira declarar uma variável scalar desta forma tem que se usar os " " ou ' '
my $numero = 7110432

Array

Um array é uma variável lista, ou seja, tem mais do que um valor atribuído. E vocês pensam agora assim então, mas qual é a diferença entre scalar e array? A diferença é simples, um array pode ter vários scalar, mas um scalar se for igualado a um array só vai ficar com o valor igual ao número de elementos do array.

Exemplo:

my @array = (teste, seila, portugal);

 my $val = @array;

#a var val vai ficar com o valor de 3 que é o número de elementos do array

Depois de ter explicado a diferença entre escalar e array vou mostrar como se podem criar arrays:

my @array = (1..10);

#neste caso estamos a dizer que o array vai ter todos os valores desde o 1 até ao 10

my @array = (teste, tx, px);

#nesta situação criei um array com 3 elementos separado por "," que indicam que é outro elemento
my @array = qw(teste tx pc);

#desta vez introduzi um conceito novo o qw ao seja ele vai assumir cada palavra como um elemento novo. ATENÇÃO: o qw funciona de forma diferente com prints

Hash

Para finalizar este artigo vou falar sobre hashes, também conhecidas por listas associativas. Ou seja, numa hash cada item vai ter um valor associado. São variáveis "bidimensionais" porque têm duas listas em que um inclui o valor chave e a outra inclui o valor correspondente.

Exemplo:

my %hash = ("linha1" => "Teste");

#o linha1 é a chave e o Teste é o valor associado a essa chave.

De referir que cada chave só pode ter um valor. O exemplo acima demonstra como se pode definir uma hash, mas existe outra opção para fazer o mesmo, que é o seguinte:

my %hash = ("linha1" , Teste);

Nota: Tanto para os arrays como para os hash nós podemos aceder a hash/array como um todo ou a uma determinada posição da hash. Atenção tanto uma como outra começa a lista no zero ao seja o primeiro valor tem posição zero.