Atribuição e variáveis
Atribuição, em linguagens de programação, é uma operação que armazena um valor em algum lugar da memória do computador, que pode ser acessado por um nome. Esse local de armazenamento é chamado de variável.
Em Perl 5 há três tipos principais de dados: escalares,
arrays e hashes (ou arrays associativos).
Escalares (scalars) podem armazenar strings e números.
Arrays são listas ordenadas de escalares cujo valor é acessado por um índice.
Hashes são listas não ordenadas de escalares cujo valor é acessado por chaves.
Variáveis que armazenam escalares,
arrays e hashes são prefixados com $
,
@
e %
,
respectivamente.
Variáveis costumam ser declaradas usando a palavra-chave my
.
Por exemplo:
my $x = 1; say $x;
Exercício
Atribua a uma variável chamada y
a string 'Alô, mundo!
e imprima seu conteúdo.
my $ say
Escalares
Dependendo do que a variável guarda (um número, uma string) você poderá usar diferentes operadores.
Digamos que você queira somar dois valores numéricos:
my $x = 1; my $y = 2; say $x + $y;
Ou talvez você queira concatenar duas strings diferentes:
my $x = 'Alô'; my $y = 'Você'; say $x . $y
Se você tentar usar +
em strings ou .
em números as variáveis serão automaticamente convertidas aos seus tipos apropriados.
my $x = 1; my $y = '2 vezes'; say $x . $y; say $x + $y;
Como pode ver no segundo exemplo a string '2 vezes'
foi convertida para um número, o 2.
Exercício
Concatene e imprima a string 'Resultado='
seguida da soma de 42
com 13
.
my $x = ; my $y = ; say
Arrays
Arrays podem armazenar listas de escalares.
my @array = (1, 2, 3); say @array;
A manipulação básica de arrays incluem obter o elemento pelo seu índice (começando de 0), obtendo o último índice, empilhando e retirando elementos.
my @array = (1, 2, 3); # obtém o terceiro elemento say $array[2]; # obtém o índice do último elemento say $#array; push @array, 4; say @array; pop @array; say @array; shift @array; say @array; unshift @array, 0; say @array;
Como você provavelmente percebeu, ao acessar um elemento do array nós trocamos @
por $
, porque o elemento do array é um escalar, e escalares usam o símbolo $
.
Exercício
Crie um array com a lista (1, 2, 3, 4)
e imprima o terceiro elemento.
my @array = ; say
Hashes
Hashes ou arrays associativos são coleção não ordenadas de escalares que podem ser acessados por uma chave. Essa chave normalmente é uma string.
my %hash = ('chave1', 'valor1', 'chave2', 'valor2');
Em vez de usar vírgula para separar chaves e valores, Perl oferece um operador mais legível, o =>
. Por exemplo:
my %hash = (chave1 => 'valuor1', chave2 => 'valor2');
Manipulação básica de hashes
Para acessar um elemento de um hash, colocamos a chave desejada entre chaves {}
. Assim como arrays, a variável armazenada é um escalar, então usamos o símbolo $
.
my %hash = (chave1 => 'valor1', chave2 => 'valor2'); say $hash{chave1};
Obtendo todas as chaves e valores de um hash
my %hash = (chave1 => 'valor1', chave2 => 'valor2'); say keys %hash; say values %hash;