[SP-pm] Dúvida com o módulo File::Find

"Flávio R. Lopes" flavio.lopes at links.inf.br
Mon Jul 12 16:40:58 PDT 2010


Boa noite pessoal!

Fiz um programa (Encripta.pl) para encryptar recursivamente os arquivos 
que ficam debaixo de uma árvore de um determinado diretório.
E o outro programa para desencriptar (Desencripta.pl) os arquivos que 
foram encriptados pelo programa anterior.

O programa para encriptar está funcionando:

Encripta.pl:

#!/usr/bin/perl

use strict;
use warnings;
use 5.012;

use File::Find;
use GnuPG qw( :algo );

my $gpg = new GnuPG();

my $diretorios = "/home/flavio/teste_cripto"; ## Aqui ainda pretendo 
criar um array para "armazenar" uma lista com mais diretórios



my $secret = "123-minha-senha-321"; ## Senha utilizada para criação da Chave
my $arquivos;

find( \&busca, $diretorios );

sub busca {

foreach ($_) {

$gpg->encrypt(
plaintext => "$_",
output => "$_.gpg",
armor => 1,
sign => 1,
recipient => "0D59E2D1", ## Minha Chave
passphrase => $secret
);

# say $_;

}

# unlink $_ if /\.gpg$/;

# print "$arquivos\n" if -f $arquivos;

}


O meu problema é para desencriptar os dados. Eu rodo o programa abaixo 
(Desencripta.pl) e dá um erro que não estou conseguindo entender:

Desencripta.pl:

#!/usr/bin/perl

use strict;
use warnings;
use 5.012;

use File::Find;
use GnuPG qw( :algo );

my $gpg = new GnuPG();

my $diretorios = "/home/flavio/teste_cripto";

my $secret = "123-minha-senha-321";
my $arquivos;

find( \&busca, $diretorios );

sub busca {

foreach ($_) {
$gpg->decrypt(
ciphertext => " $_ ",
output => " $_ ",
recipient => "0D59E2D1",
passphrase => $secret
);

## say $_; --> Aqui eu dei um "say" nesta variável para verificar se
realmente estava trazendo os nomes dos arquivos e o
gozado é que é que ela lista todos os arquivos que foram
encriptados, mas mesmo assim dá um erro quando rodo o
programa



  }
}

O que está errado no meu programa?

Abraço,
Flávio


More information about the SaoPaulo-pm mailing list