6.1 FILEHANDLE |
O segredo de toda da gravação e leitura de registros com PERL está numa coisa chamada FILEHANDLE.
Podemos considerar um filehandle como sendo uma porta virtual que abrimos para um arquivo.Depois de aberta a porta podemos entrar e sair por ela: podemos gravar e ler registros no arquivo.
Acontece porém que uma porta aberta para gravar é diferente de uma porta aberta para ler.Temos que ter um filehandle para ler registros e um filehandle para gravar. Na realidade a coisa é mais complicada ainda. Podemos fazer três coisas com relação a trabalho com um arquivo em PERL:
open(FILEHANDLE,"<path do arquivo");
Repare no sinal de menor-do-que ou flexa-para-a-esquerda antes do path mas DENTRO DAS ASPAS.
Um filehandle pode ter qualquer nome.
No provedor HIWAY um arquivo ARQ.TXT numa pasta PUBLIC, num site, tem o path:../PUBLIC/ARQ.TXT. Verifique com seu provedor como se designa paths de arquivos no seu caso.
open(FILEHANDLE,">>path do arquivo");
Caso o arquivo não exista, ele é criado.
open(FILEHANDLE,">path do
arquivo");
Você pode achar estranha essa
história de apagar arquivo e regravar, mas se leu atentamente o
último capítulo entende porque. É que não se
consegue fazer update facilmente em PERL e é possível (se
seu arquivo for muito pequeno) usar o truque de se ler TODO o arquivo para
um array-matriz; atualizar a linha e depois REGRAVAR TODO O ARQUIVO.
6.2 GRAVANDO UM REGISTRO |
Para gravar um registro ou uma linha num arquivo, depois de criar o filehandle com OPEN, é só dar um comando print junto com o filehandle de gravação do arquivo e o string a ser gravado.
SEMPRE SE GRAVA TODO O REGISTRO, como vimos no capítulo anterior. Por exemplo, para gravar o string: "XXXXX" num arquivo chamado arq1.txt teremos duas linhas de código:
open(fha1,">>../public/arq1.txt");
print fha1 "XXXXX\n";
No caso o filehandle se chamou:fha1.E definimos a gravação como apêndice.
Repare que colocamos o "scape" de linha seguinte (\n) depois do string para que o próximo registro seja gravado na linha seguinte. Essas gravações se assemelham a impressões, na realidade. Estamos "printando" no arquivo.
Poderíamos fazer um exercício simplíssimo de gravação de dois registros via Internet em que uma resposta é enviada "on-the-fly" para quem disparou o programa.Você pode ver isso nesse hipertexto. Não precisa fazer esse exercício (que chamamos de prog3.pl só para referência) na prática mas aprenda bem a idéia.
Repare porém a linha de comando:
close (FILEHANDLE);
colocada depois que encerramos a gravação
dos registros. Para fechar a porta...
6.3 SEU NOME NO LIVRO DE OURO |
Vamos fazer um exercício simples mas mais sofisticado que o anterior. Vamos misturar o prog2.pl com o prog3.pl.Veja como fica,no hipertexto o que podemos chamar de prog4.pl.
É claro que você tem que ter a página que dispara o programa que é semelhante ao prog2.html só mudando o nome do programa. Veja no hipertexto o que podemos chamar de prog4.html.
Você tem que adaptá-los as suas referências e transportá-los para o seu site (O programa, para o diretório executável (CGI-BIN?) no modo ASCII).
NÃO SE ESQUEÇA DE ACRESCENTAR O ARQUIVO MAGIC.TXT NO FINAL!!!!!
Pode. no entanto executar o nosso, deixando seu nome no livro de "chamada" do nosso curso (não vale assinar por outro).
Vamos mostrar no próximo capítulo como lemos esse e outros arquivos e projetamos na Internet, on-the-fly. Olha o programa rodando aí em baixo:
PS: Pode entrar com seu nome certo.
Não vamos enviar propaganda para seu e-mail nem nada (As "bonecas"
e apavorados podem entrar com o "nome de guerra").
OUTRO PS: Uma coisa importante de lembrar é que o UNIX é sensível a maiusculas e minúsculas.
Tome cuidado com isso que pode gerar muitos erros.