Aldeia Numaboa
Um portal diferente em Português do Brasil
Informática da Aldeia

Tutoriais

Na Aldeia

Há 76 visitantes e 1 usuário registrado online

3308 registros
0 hoje
12 nesta semana
45 neste mês

Boas vindas: paulo

Estatística

Artigos: 1063
Leituras: 6041292
Arquivados: 21
Downloads: 533
Baixados: 172399
Glossário: 1208
Bibliografia: 25
Links: 90

Visitas de onde

Top 5:
Brasil flag 73%Brasil (49282)
Portugal flag 5%Portugal (3192)
EUA flag 3%EUA (2217)
Rússia flag 0%Rússia (263)
Holanda flag 0%Holanda (240)
67667 visitas de 100 países

Hoje:56
Ontem:2619
No mês:41852
Mês passado:25815
Total:67667
Recorde:3037
No dia:04.03.10
Leituras hoje:20372
Leituras Total:289800
Bots hoje:16
Dados desde:16.02.2010

Login



Kanji da hora




Faça contato






Sex

21

Nov

2008


17:04

Linguagem Perl - Strings PDF Imprimir Indique esta página
(2 votos, média 5.0 de 5)
Escrito por vovó Vicki   


Índice do Artigo
Linguagem Perl - Strings
Strings em listas
Subsituições
Todas as páginas

São muitas as possibilidades de manipular strings que a linguagem Perl oferece. Neste tutorial vamos ver os principais recursos disponíveis.

Convenções para Strings

Em Perl, as strings podem ficar entre aspas simples ou duplas. A diferença entre as notações é que, numa sequência de caracteres entre aspas duplas, todos os caracteres especiais são interpretados. Numa sequência de caracteres entre aspas simples, apenas os caracteres especiais mais importantes são interpretados. Exemplos:

$Escalar01 = "Aqui segue uma\nQuebra de linha";
$Escalar02 = "Aqui segue uma\fQuebra de página";
$Escalar03 = "Aqui segue um\bBackspace";
$Escalar04 = "Aqui segue um\rRetorno de carro";
$Escalar05 = "Aqui segue um\tTab";
$Escalar06 = "Aqui segue um\vTab Vertical";
$Escalar07 = "Aqui segue um\aSinal de alarme";
$Escalar08 = "Aqui segue um\012 Carcater com valor octal de 012";
$Escalar09 = "Aqui segue um\x7f Caracter com valor hexadecimal de 7f";
$Escalar10 = "Aqui segue um\cC Control-C (aqui: [Ctrl]+[C])";
$Escalar11 = "Aqui seguem\"Aspas";
$Escalar12 = "Aqui segue uma\\Contrabarra";
$Escalar13 = "Este \lA é interpretado como minúsculo (a)";
$Escalar14 = "Esta \LPALAVRA\E é interpretada como minúscula (palavra)";
$Escalar15 = "Este \ua é interpretado como A maiúsculo";
$Escalar16 = "Esta \Upalavra\E é interpretada como PALAVRA em maiúsculo";
$Escalar17 = 'Aqui só \\ e\' são interpretados';

Nos exemplos acima, as escalares $Escalar01 a $Escalar16 estão entre aspas duplas. Por este motivo podem conter todos os caracteres especiais.

Os caracteres especiais são precedidos por uma contrabarra \ seguida por uma letra ou um número em notação octal ou hexadecimal.

A $Escalar17 foi colocada entre aspas simples. Neste caso, apenas os caracteres especiais nela utilizados são permitidos, ou seja, \' para indicar aspa simples e \\ para indicar contrabarra.

Info Observação: Dos sinais especiais da linguagem Perl associada à CGI, o sinal \n tem uma importância especial. É necessário, por exemplo, quando um script CGI envia dados de uma página HTML para um navegador. O envio de dados tem três fases: o tipo de dado que será transmitido, uma linha em branco e os dados propriamente ditos. A linha em branco é obtida através do sinal especial \n. O comando típico para a fase 1 e 2 da transmissão pode ser obtida em apenas uma linha através de

print "Content-type: text/html\n\n";

Extraindo partes de strings

Pode-se extrair uma sequência de caracteres ou um único caracter de uma string. Veja o exemplo:

#!/usr/bin/perl
 
$Url = "http://www.numaboa.com/index.html";
$Stop = index($Url,":");
$Protocolo = substr($Url,0,$Stop);
$Start = index($Url,"//") + 2;
$Dominio = substr($Url,$Start);
$Stop = index($Dominio,"/");
$Dominio = substr($Dominio,0,$Stop);
$Start = rindex($Url,"/") + 1;
$NomeArq = substr($Url,$Start);
$Compr_Url = length($Url);
print "O protocolo utilizado pelo endereço da URL é: ", $Protocolo, "\n";
print "O domínio da URL é: ", $Dominio, "\n";
print "O nome do arquivo da URL é: ", $NomeArq, "\n";
print "O endereço URL tem um comprimento de ", $Compr_Url, " caracteres\n";

Neste exemplo extrai-se de um endereço URL, atribuído à escalar $Url, o protocolo (http), o domínio (www.numaboa.com) e o nome do arquivo (index.html). Todas as três partes são atribuídas a escalares próprias. O protocolo está em $Protocolo, o domínio em $Dominio e o nome do arquivo em $NomeArq. Ao final do programa as partes são apresentadas utilizando-se a função print.

A função Perl com a qual é possível extrair uma parte de uma cadeia de caracteres chama-se substr. Esta função possui dois ou três argumentos que devem ser passados como parâmetros. O primeiro parâmetro é a string da qual a sequência de caracteres deve ser extraída. O segundo parâmetro é um número. Este número indica a partir de qual caracter da string a sub-string deve ser extraída. O primeiro caractere da string é o de número 0. Por exemplo, substr("Pedro Henrique",2) retorna "dro Henrique". Como terceiro parâmetro, opcional, pode-se indicar o número de caracteres que se quer extrair. Por exemplo, substr("Pedro Henrique",0,5) retorna Pedro.

Muitas vezes, porém, desconhece-se a posição onde uma parte desejada se inicia, mas se conhece a estrutura da string. Isto também acontece no exemplo acima. A string é um endereço URL e endereços URL têm um estrutura conhecida. Quando se quer extrair o domínio de uma URL, sabe-se que o endereço do domínio se inicia logo após as duas barras //. A Perl oferece para isto as funções index e rindex.

Com index obtém-se o início da posição da primeira ocorrência de um caractere ou seqüência de caracteres e com rindex obtém-se o início da posição da última ocorrência. Ambas as funções possuem dois argumentos. O primeiro é a string que será pesquisada, o segundo é a sub-string que é procurada. As duas funções retornam um número. Este número pode ser utilizado como segundo parâmetro da função substr. Por exemplo, index("Os micos fazem micagens","mic") retorna 3, o início da primeira ocorrência de "mic", e rindex("Os micos fazem micagens","mic") retorna 15, o início da última ocorrência.

É aconselhável atribuir os valores de retorno destas funções a escalares próprias, como no exemplo acima. Estas variáveis escalares podem ser confortavelmente retrabalhadas posteriormente.

Info Observação: Outra função interessante para strings é a length (length = comprimento), também usada no exemplo. Esta função retorna o número de caracteres que compõem uma string.



Última atualização ( Sex, 21.11.2008 21:21 )
 

Topo

Topo

Exceto onde especificamente citado, todo material deste site está sob Licença Creative Commons