Com scripts Perl é possível administrar arquivos. Associados a scripts CGI, pode-se ler e escrever arquivos no servidor. As aplicações mais conhecidas de CGI, como contadores de acesso ou livros de visita, utilizam-se dessa possibilidade.
Cada arquivo que deva ser lido, ou que deva receber dados (ser escrito) através de um script Perl, precisa antes ser aberto. Após a leitura ou a escrita, os arquivos deveriam ser fechados novamente. Exemplos:
#!/usr/bin/perl
open(ARQUIVONOTICIA, "<news.txt"); # Abrir arquivo para leitura
close(ARQUIVONOTICIA);
open(ARQUIVONOTICIA, ">news.txt"); # Abrir arquivo para escrita
close(ARQUIVONOTICIA);
open(ARQUIVONOTICIA, ">>news.txt"); # Abrir arquivo para escrita complementar
close(ARQUIVONOTICIA);
if(open(ARQCONTA, "<counter/counter.dat") == false)
{ print "Arquivo Contador não encontrado\n"; }
open(ARQCONTA, "<counter/counter.dat") || die "Arquivo Contador não encontrado\n";
Abre-se um arquivo com a função Perl open. Esta função requer dois parâmetros.
O primeiro parâmetro é um manipulador (handler) de arquivo. O handler é um nome que o arquivo aberto recebe e que serve para referenciá-lo (não é o nome próprio do arquivo, é uma espécie de apelido). Este nome é de livre escolha. Costuma-se usar apenas letras maiúsculas para nomes de handlers. Nos exemplos acima, os referidos nomes são ARQUIVONOTICIA e ARQCONTA.
O segundo parâmetro exigido é o nome do arquivo que deve ser aberto. Se o arquivo em questão estiver num diretório diferente do do script, há a necessidade de se indicá-lo.
Antes do nome do arquivo (ou do diretório/nome do arquivo) indica-se, através de caracteres especiais, qual o modo de abertura que deve ser utilizado:
<arquivo.dat significa: abrir arquivo.dat somente para leitura. Um erro é gerado caso o arquivo não exista.
>arquivo.dat significa: abrir arquivo.dat para escrita. Se o arquivo já existir, seu conteúdo é substituído pelo novo. Caso não exista, um novo arquivo é criado.
>>arquivo.dat significa: abrir arquivo.dat para escrita. Se o arquivo já existir, o novo conteúdo é adicionado, isto é, o conteúdo antigo não é eliminado. Caso não exista, um novo arquivo é criado.
+>arquivo.dat significa: abrir arquivo.dat para leitura e escrita.
|procura.exe significa: o arquivo procura.exe é um programa executável. O programa é aberto para poder ser executado.
Faz parte de uma boa programação rastrear possíveis erros na abertura de arquivos e tratá-los no script Perl. Os dois últimos exemplos mostram construções de diretivas para reagirem a esses possíveis erros. O penúltimo exemplo trabalha com uma diretiva condicional e mostra uma mensagem de erro, com a ajuda da função print, caso ele ocorra. O último exemplo faz uso de uma simples expressão OU que o interpretador Perl avalia. Inicialmente é avaliada a primeira parte da expressão (na frente do operador lógico ||). Este é o comando para abrir o arquivo. Se o arquivo for aberto com sucesso, a função open devolve o valor "verdadeiro" tornando toda a expressão lógica como verdadeira. Se o arquivo não puder ser aberto, então a segunda parte da expressão é avaliada. Neste caso, através da função die (die = morrer), o texto indicado é mostrado e o script é interrompido. O texto da função die é opcional. |