Tutor NumaBoaVARIÁVEIS PREDEFINIDAS
Tutorial Linguagem Perl - 4
Silício NumaBoa

Roteiro do Módulo:
Variáveis Predefinidas
Escalares predefinidas
Listas e Hash predefinidos
Variáveis do Contexto Perl

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:

EscalarExplicaçãoExemplo
$_ É 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.
"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 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;


Listas e Hash predefinidos

A lista a seguir não está completa. Contém apenas as principais variáveis de lista e hash predefinidas:

Lista/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 e 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 Perl

A Perl 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 desse 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).
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.


Todos os scripts CGI deste site são "made in Aldeia". As linguagens utilizadas são principalmente PHP e alguma coisa em Perl. Faça contato: tire dúvidas, solicite matérias, critique e contribua.




@ Linguagem Perl | Generalidades | Fundamentos | Variáveis | Predefinidas | Condicionais | Loops/Saltos | Operadores | Regulares | Sinais | Funções | Arquivos | Strings | Números | CGI | Scripts |

| AAAA | Página Inicial | Mapa do Site | Novidades | Busca | Indique esta página | Mestre da Teia | Voltar |
| Localizador || @ Info NumaBoa > Tutoriais > Linguagem Perl - Variáveis predefinidas
Créditos: vovó Vicki

webdesign sobMedida by vickiSoft - /informatica/tutor/linguagens/perlPredef.php (22.08.00) versão 1.1 de 26.07.03
Licença Creative Commons 1998-2006 Aldeia NumaBoa
Exceto onde especificamente declarado, todo material deste site é disponibilizado de acordo com a Licença Creative Commons.