Perl - Tipos de Dados
Perl é uma linguagem vagamente tipada e não há necessidade de especificar um tipo para seus dados ao usar em seu programa. O interpretador Perl escolherá o tipo com base no contexto dos próprios dados.
Perl tem três tipos de dados básicos: escalares, matrizes de escalares e hashes de escalares, também conhecidos como matrizes associativas. Aqui estão alguns detalhes sobre esses tipos de dados.
Sr. Não. | Tipos e descrição |
---|---|
1 | Scalar Os escalares são variáveis simples. Eles são precedidos por um cifrão ($). Um escalar é um número, uma string ou uma referência. Uma referência é na verdade o endereço de uma variável, que veremos nos próximos capítulos. |
2 | Arrays Arrays são listas ordenadas de escalares que você acessa com um índice numérico, que começa com 0. Eles são precedidos por um sinal "arroba" (@). |
3 | Hashes Hashes são conjuntos não ordenados de pares de chave / valor que você acessa usando as chaves como subscritos. Eles são precedidos por um sinal de porcentagem (%). |
Literais Numéricos
Perl armazena todos os números internamente como inteiros com sinal ou valores de ponto flutuante de precisão dupla. Literais numéricos são especificados em qualquer um dos seguintes formatos de ponto flutuante ou inteiro -
Tipo | Valor |
---|---|
Inteiro | 1234 |
Inteiro negativo | -100 |
Ponto flutuante | 2000 |
Notação científica | 16.12E14 |
Hexadecimal | 0xffff |
Octal | 0577 |
Literais de string
Strings são sequências de caracteres. Eles geralmente são valores alfanuméricos delimitados por aspas simples (') ou duplas ("). Eles funcionam como aspas do shell do UNIX, onde você pode usar strings entre aspas simples e duplas.
Literais de string entre aspas duplas permitem interpolação de variáveis, e strings com aspas simples não. Existem certos caracteres que são precedidos por uma barra invertida, têm um significado especial e são usados para representar como nova linha (\ n) ou tabulação (\ t).
Você pode incorporar novas linhas ou qualquer uma das seguintes sequências de Escape diretamente em suas strings entre aspas duplas -
Sequência de fuga | Significado |
---|---|
\\ | Barra invertida |
\ ' | Citação única |
\ " | Citação dupla |
\uma | Alerta ou sino |
\ b | Backspace |
\ f | Feed de formulário |
\ n | Nova linha |
\ r | Retorno de carruagem |
\ t | Aba horizontal |
\ v | Aba vertical |
\ 0nn | Cria números formatados em octal |
\ xnn | Cria números formatados hexadecimais |
\ cX | Controla os caracteres, x pode ser qualquer caractere |
\você | Força o próximo caractere a maiúsculas |
\eu | Força o próximo caractere para minúsculas |
\VOCÊ | Força todos os caracteres seguintes a maiúsculas |
\EU | Força todos os caracteres seguintes para minúsculas |
\ Q | Barra invertida em todos os caracteres não alfanuméricos seguintes |
\ E | Fim \ U, \ L ou \ Q |
Exemplo
Vamos ver novamente como as strings se comportam com aspas simples e duplas. Aqui, usaremos escapes de string mencionados na tabela acima e faremos uso da variável escalar para atribuir valores de string.
#!/usr/bin/perl
# This is case of interpolation.
$str = "Welcome to \ntutorialspoint.com!";
print "$str\n";
# This is case of non-interpolation.
$str = 'Welcome to \ntutorialspoint.com!';
print "$str\n";
# Only W will become upper case.
$str = "\uwelcome to tutorialspoint.com!";
print "$str\n";
# Whole line will become capital.
$str = "\UWelcome to tutorialspoint.com!";
print "$str\n";
# A portion of line will become capital.
$str = "Welcome to \Ututorialspoint\E.com!";
print "$str\n";
# Backsalash non alpha-numeric including spaces.
$str = "\QWelcome to tutorialspoint's family";
print "$str\n";
Isso produzirá o seguinte resultado -
Welcome to
tutorialspoint.com!
Welcome to \ntutorialspoint.com!
Welcome to tutorialspoint.com!
WELCOME TO TUTORIALSPOINT.COM!
Welcome to TUTORIALSPOINT.com!
Welcome\ to\ tutorialspoint\'s\ family