Algumas variáveis especiais são definidas na linguagem Perl, geralmente prefixadas com $, @ ou %, por exemplo: $_.
Muitas variáveis especiais têm um nome longo em inglês. A variável do sistema operacional $!
Se você quiser usar variáveis especiais com nomes em inglês, você precisa adicionar use English no início do programa. Isso permite o uso de variáveis especiais descritivas em inglês.
A variável especial mais comumente usada é $_, que contém entrada padrão e conteúdo de correspondência de padrões. Os exemplos são os seguintes:
Executando o programa acima, o resultado de saída é:
GoogleCoderctoTaobao
Nos exemplos a seguir não usamos $_ para gerar conteúdo:
Executando o programa acima, o resultado de saída é:
GoogleCoderctoTaobao
No exemplo, "Google" é gerado primeiro, depois "Codercto" e, finalmente, "Taobao".
Em um loop iterativo, a string do loop atual será colocada em $_ e depois impressa. Além disso, print não especifica uma variável de saída e $_ é usado por padrão.
Aqui estão alguns lugares onde Perl assumirá $_ mesmo que não seja especificado:
Várias funções unárias, incluindo funções como ord() e int() e todas as operações de teste de arquivo ("-f", "-d") exceto "-t", que opera em STDIN por padrão.
Várias funções de lista, como print() e unlink().
Operações de correspondência de padrões "m//", "s///" e "tr///" sem o operador "=~".
A variável de iteração padrão para "foreach" faz um loop quando nenhuma outra variável é fornecida.
Variáveis de iteração implícitas para funções grep() e map().
Quando "while" tem apenas uma condição e essa condição testa o resultado da operação "", $_ é o local padrão para o registro de entrada. Isto não acontece exceto em condições de teste "while". (Mnemônico: o sublinhado pode ser omitido em certas operações.)
De acordo com a natureza do uso das variáveis especiais, elas podem ser divididas nas seguintes categorias:
Variável especial escalar global.
Variáveis especiais de matriz global.
Variável especial de hash global.
Identificador de arquivo especial global.
Constantes especiais globais.
Variáveis especiais de expressão regular.
Variável especial de identificador de arquivo.
A seguir listamos todas as variáveis escalares especiais, incluindo variáveis com caracteres especiais e formas em inglês:
$_ | Entrada padrão e conteúdo de correspondência de padrões. |
$ARG | |
$. | O número da linha atual da última leitura do identificador de arquivo |
$NR | |
$/ | Insira o separador de registro, cujo padrão é um caractere de nova linha. Se você usar a variável undef, o final do arquivo será lido. |
$ RS | |
$, | Separador de campo de saída |
$OFS | |
$ | Separador de registros de saída |
$ORS | |
$" | Esta variável é semelhante a $, mas deve ser usada para interpolar valores de array e fatiar em strings entre aspas duplas (ou strings interpoladas semelhantes). O padrão é um espaço. |
$LIST_SEPARATOR | |
$; | Delimitador usado ao simular matrizes multidimensionais. O padrão é " |