Informática Numaboa - Tutoriais e Programação
Linguagem Perl - Variáveis Predefinidas
|
Sab 22 Nov 2008 19:28 |
- Detalhes
- Categoria: Perl e CGI
- Atualização: Sábado, 22 Novembro 2008 22:27
- Autor: vovó Vicki
- Acessos: 5419
A linguagem Perl possui uma gama de variáveis predefinidas. O conteúdo dessas variáveis pode ser acessado para se obter informações sobre a configuração do interpretador Perl e sobre a configuração do sistema do servidor. Algumas variáveis, entretanto, apresentam um conteúdo específico dependendo da situação do procedimento. Estas possibilidades, porém, devem ser exploradas apenas quando se tem o domínio da linguagem.
Escalares predefinidas
A lista a seguir não está completa. Contém apenas as principais variáveis escalares predefinidas.
| Escalar | Explicação | Exemplo |
| $_ | É a variável predefinida mais conhecida da Perl. Em loops de procura (por exemplo, na procura em uma lista) ela contém o valor da posição atual. Ela pode ser integrada diretamente na procura, sem a necessidade de se definir uma variável própria. O exemplo ao lado mostra a sequência de números que foram definidos na lista @Numeros. |
@Numeros = (1..10);
for(@Numeros)
{
print $_, "\n";
}
|
| $. | Guarda a linha atual do último arquivo lido. No exemplo ao lado, todas as linhas de um arquivo texto são lidas e impressas. No final, $. indica quantas linhas foram lidas. |
open(ARQUIVO, "<readme.txt");
while(<ARQUIVO>) {
print $_;
}
print $., "Linhas lidas";
close(ARQUIVO);
|
| $/ | Contém o separador estabelecido para uma entrada de dados. Pode ser alterado - mais de um separador é permitido. O exemplo ao lado mostra que uma entrada efetuada através da entrada padrão só pode ser terminada quando o usuário digitar FIM seguido de <return>. |
$/ = "FIM"; $SeuNome = <stdin><STDIN>; print $SeuNome; |
| $] | Contém o número da versão do interpretador Perl utilizado. Esta variável é apropriada para garantir que o código a ser executado seja compatível com a versão do interpretador. |
{
print "O interpretador
Perl é muito antigo";
} else {
print $];
}
|
| $! | Caso tenha ocorrido um erro, contém a mensagem de erro ou o número do erro do contexto atual. No exemplo ao lado há um comando que tenta abrir um arquivo. Se o arquivo não puder ser aberto, a mensagem de erro será impressa. |
open(ARQUIVO, "<nadinha.txt") || print $!; |
| $0 | Contém o nome do arquivo do script Perl que está sendo executado. Seu valor pode ser alterado. |
print $0, " está sendo executado!"; |
| $$ | Contém a identificação (ID) do processo que está sendo executado. É interessante em sistemas UNIX/Linux. |
"O processo ", $$, " está sendo executado!"; |
| $^T | Contém a hora exata, em milissegundos, do início da execução do script. O exemplo em destaque mostra um pequeno teste de benchmark. Após executar um longo loop de cálculos, mostra quanto tempo o script gastou na execução. |
@Numeros = (1..50000);
for(@Numeros) {
$x = sqrt($_);
}
$Inicio = $^T;
$Agora = time;
print "Tempo: ",
$Agora - $Inicio, " ms\n";
|
| $& | Após a utilização de uma expressão regular, contém o valor que corresponde ao padrão da procura. |
$Frase = "Homem e Mulher"; $Frase =~ /\be\b.*/; print $&; |
| $+ | Após a utilização de uma expressão regular regular entre parênteses, contém o valor que corresponde ao padrão da procura. |
$Frase = "Homem e Mulher"; $Frase =~ /(\be\b).*/; print $+; |
| $1, $2, etc | Após a utilização de uma expressão regular entre parênteses numerada, contém o valor que corresponde ao padrão numerado da procura. |
$Frase = "Homem e Mulher"; $Frase =~ /(\be\b).*/1; print $1; |
Matrizes e Hashes predefinidos
A lista a seguir não está completa. Contém apenas as principais variáveis de matrizes e hashes predefinidos.
| Matriz/Hash | Explicação | Exemplo |
| @_ | Contém os parâmetros enviados quando se chama uma subrotina. Na subrotina, estes parâmetros podem ser acessados através de $_[0] (primeiro parâmetro), $_[1] (segundo parâmetro), etc |
&Fale("Olá pessoal");
sub Fale {
print $_[0];
}
|
| @ARGV | Contém os parâmetros enviados na abertura de um script Perl. Por exemplo, chamando-se Perl com perl teste.pl meutexto.txt, então meutexto.txt é o primeiro parâmetro para o script que pode processá-lo como input na execução. No exemplo ao lado, o primeiro parâmetro $ARGV[0] é interpretado como nome de um arquivo e o script tenta abrir este arquivo. |
open(ARQ, "<$ARGV[0]") || die "Erro!"; print $ARGV[0], " aberto!"; close(ARQ); |
| %ENV | Contém todo o contexto oferecido ao interpretador Perl (drivers ativos, programas do sistema, etc). O exemplo ao lado mostra todos os elementos do Hash que contém estes dados. |
for(%ENV) {
print $_, "\n";
}
|
Variáveis do Contexto
A linguagem utiliza variáveis de contexto principalmente para indicar determinados padrões de procura ao interpretador Perl. A lista a seguir não está completa, contém apenas as principais variáveis de contexto predefinidas. Pode-se obter o conteúdo deste tipo de variável através de $Valor = $ENV{'PATH'};. O importante neste caso é a utilização de $ENV{'NomeDaVariável'} - o nome da variável precisa estar entre chaves e o uso de aspas simples é aconselhável.| Variável | Explicação |
| HOME | Contém o caminho que deve ser seguido quando um comando chdir não contiver parâmetros (típico do Unix/Linux). |
| PATH | Contém o caminho completo, ou seja, todos os diretórios nos quais os programas executáveis devem ser procurados. É utilizada pelo Perl quando um script chama um segundo script Perl cuja localização não tenha sido especificada. |


