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

thiago glauco thiagoglauco at ticursos.net
Sun Sep 26 05:57:17 PDT 2010


"Flávio R. Lopes" wrote:

Ok, vou dar uma olhadinha no código e passar no debug. Ai mando de volta.

> Olá pessoal.
> Na verdade estou "requentando" uma dúvida minha sobre um programa que 
> comecei e não terminei.
>
> Estou tentando fazer 2 programas que tratam de criptografar e 
> descriptografar dados recursivamente dentro de uma árvore de diretórios.
>
> O código deles está aqui: http://gist.github.com/597573
>
> No programa "criptografa.pl" ele já consegue criptografar dados dos 
> diretórios, mas está acontecendo um problema que ele criptografa o 
> nome dos diretórios inclusive os ocultos. Supondo que eu aponte para 
> um determinado diretório e que dentro dele eu tenha um diretório 
> chamado "dir1" e mais dois arquivos chamados "arquivo1" e "arquivo2" 
> ao rodar o programa e se eu der o comando "ls -al" dentro do tal 
> diretório me aparece o seguinte:
>
>
> dir1
> arquivo1
> arquivo1.gpg
> arquivo2
> arquivo2.gpg
> dir1.gpg --> aqui criptograga o nome do diretorio
> ..gpg -- > e aqui e no debaixo os diretórios ocultos
> ..gpg.gpg
>
> Como faço para o programa "pegar" somente os arquivos para 
> criptografar, ignorando os diretórios ?
>
>
> Já o programa "descriptografa.pl" ocorre um erro que não consegui 
> descobrir e os arquivos não são descriptografados. Acredito que eu 
> esteja errando alguma coisa ao utilizar o módulo File:Find na passagem 
> de parâmetros.
> A mensagem de erro é esta:
>
> Protocol error: expected NEED_PASSPHRASE.* got NODATA
>  at /usr/local/lib/perl5/site_perl/5.12.1/GnuPG.pm line 154
>     GnuPG::abort_gnupg('GnuPG=HASH(0xf99b48)', 'Protocol error: 
> expected NEED_PASSPHRASE.* got NODATA\x{a}') called at 
> /usr/local/lib/perl5/site_perl/5.12.1/GnuPG.pm line 345
>     GnuPG::send_passphrase('GnuPG=HASH(0xf99b48)', 123456) called at 
> /usr/local/lib/perl5/site_perl/5.12.1/GnuPG.pm line 740
>     GnuPG::decrypt_postwrite('GnuPG=HASH(0xf99b48)', 'ciphertext', ., 
> 'output', '..txt', 'symmetric', 1, 'passphrase', 123456, ...) called 
> at /usr/local/lib/perl5/site_perl/5.12.1/GnuPG.pm line 725
>     GnuPG::decrypt('GnuPG=HASH(0xf99b48)', 'ciphertext', ., 'output', 
> '..txt', 'symmetric', 1, 'passphrase', 123456, ...) called at 
> /home/flavio/workspace/TESTE/decripto_teste.pl line 34
>     main::busca() called at /usr/local/lib/perl5/5.12.1/File/Find.pm 
> line 854
>     File::Find::_find_dir('HASH(0xf99bd8)', 
> '/home/flavio/teste_cripto', 3) called at 
> /usr/local/lib/perl5/5.12.1/File/Find.pm line 722
>     File::Find::_find_opt('HASH(0xf99bd8)', 
> '/home/flavio/teste_cripto/') called at 
> /usr/local/lib/perl5/5.12.1/File/Find.pm line 1297
>     File::Find::find('CODE(0x11617a8)', '/home/flavio/teste_cripto/') 
> called at /home/flavio/workspace/TESTE/decripto_teste.pl line 18
>
>
> Parece que ele não localiza a senha. Mas eu tentei inclusive colocar a 
> senha dentro da sub eliminando a variável $secret. Ou seja, fez desta 
> forma: passphrase => "123456"
>
> O que está errado?
>
> Abraço,
> Flávio
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



More information about the SaoPaulo-pm mailing list