 |
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:
| 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. |
"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. |
|