[SP-pm] Problemas com JSON e PERL

Daniel de Oliveira Mantovani daniel.oliveira.mantovani at gmail.com
Wed Jun 16 07:54:27 PDT 2010


2010/6/16 Walter Silvestre Coan <w.coan em terra.com.br>:
> Bom dia,
>
> Estou tentando adaptar uma aplicação chamada ScriptLattes
> (http://scriptlattes.sourceforge.net/). Ele é uma aplicação escrita em Perl
> com o objetivo de realizar o download dos dados da Plataforma Lattes, que
> são curriculos academicos de alunos e professores. Uma das novas
> funcionalidades desse script é que os dados baixados são salvos em um
> arquivo .json, possibilitando serem importados para outros formatos ou até
> bancos de dados. O problema é que quando eu rodo esse script no meu ambiente
> (Ubuntu 8.4 server). Ele simplesmente gera o arquivo .json em branco (apesar
> do script realizar as outras tarefas corretamente). O autor do script me
> ajudou e fez alguns testes, e no computador dele esta funcionando
> perfeitamente, gerando os dados no formato json. Acredito que o problema
> esteja no meu ambiente, porém eu ja baixei vários pacotes referentes ao PERL
> e ao JSON mas nada de funcionar.

Certo, agora deu para entender melhor. Vamos lá, começando pela cultura:
http://rio.pm.org/faq.pl#faq4



>
> O codigo que gera o arquivo basicamente é esse:
> sub createJsonFile
> {
>  # Arquivo JSON contendo todas as produções do grupo.
>  # Este arquivo pode ser utilizado para popular bancos de dados.
>  #to_json(

O que isso retorna ? Você verificou se retorna o que deveria ? Isso
está alterando o estado da variável "$allInfoByType" ? Isso me parece
muita confusão, side-effect sux.

>  open(JSONFILE, ">$outputDir/database.json");

Evite usar filehandle para abrir handle com open, e use três argumentos:
open, $jasonfile,'>', "$outputDir/database.json" or die $!;



>  eval
>  {
>   print JSONFILE lenght($allInfoByType);
>  };

Por que você está imprimindo no handle dentro de um eval ?

>  close(JSONFILE);
> }
>
>
> Alguns dados:
> Perl versão 5.8.8
>
> Pacotes instalados:

Certo vamos lá, você não deve usar módulos do CPAN empacotados, pelo
gerenciador de pacote. Os pacotes com os módulos são muito
desatualizados.

Você conhece o CPAN ?
Você deve instalar os módulos do CPAN locais em algum lugar que não
tenha conflito com os módulos dos pacotes. Você pode fazer isso usando
local::lib.

http://blog.blabos.org/2009/08/instalando-modulos-do-cpan-via-locallib/
http://64.150.190.83/artigo/2009/UsandoCpan



Depois de você fazer isso, diga nos se ainda está dando problema.

[]'s

> waltercoan em ldubuntuserver:~$ dpkg --get-selections | grep -i json
> libjson-any-perl    install
> libjson-perl     install
>
> waltercoan em ldubuntuserver:~$ dpkg --get-selections | grep -i perl
> libalgorithm-c3-perl    install
> libappconfig-perl    install
> libarchive-tar-perl    install
> libbit-vector-perl    install
> libcache-cache-perl    install
> libcache-fastmmap-perl    install
> libcarp-assert-more-perl   install
> libcarp-assert-perl    install
> libcarp-clan-perl    install
> libcatalyst-modules-perl   install
> libcatalyst-perl    install
> libcatalyst-view-tt-perl   install
> libcgi-formbuilder-perl    install
> libcgi-simple-perl    install
> libclass-accessor-chained-perl   install
> libclass-accessor-grouped-perl   install
> libclass-accessor-perl    install
> libclass-c3-componentised-perl   install
> libclass-c3-perl    install
> libclass-data-accessor-perl   install
> libclass-data-inheritable-perl   install
> libclass-inspector-perl    install
> libclass-mop-perl    install
> libclass-throwable-perl    install
> libclass-trigger-perl    install
> libcompress-raw-zlib-perl   install
> libcompress-zlib-perl    install
> libconfig-any-perl    install
> libdata-dump-perl    install
> libdata-optlist-perl    install
> libdata-page-perl    install
> libdata-visitor-perl    install
> libdate-calc-perl    install
> libdbd-mysql-perl    install
> libdbi-perl     install
> libdbix-class-perl    install
> libdbix-class-schema-loader-perl  install
> libdbix-contextualfetch-perl   install
> libdeps-perl     install
> libdeps-renderer-dot-perl   install
> libdevel-stacktrace-perl   install
> libdigest-hmac-perl    install
> libdigest-sha1-perl    install
> libemail-valid-perl    install
> liberror-perl     install
> libexporter-lite-perl    install
> libextutils-autoinstall-perl   install
> libextutils-cbuilder-perl   install
> libextutils-parsexs-perl   install
> libfile-copy-recursive-perl   install
> libfile-modified-perl    install
> libfile-slurp-perl    install
> libgd-gd2-noxpm-perl    install
> libgd-graph-perl    install
> libgd-text-perl     install
> libgraphviz-perl    install
> libhtml-parser-perl    install
> libhtml-prototype-perl    install
> libhtml-scrubber-perl    install
> libhtml-tagset-perl    install
> libhtml-template-perl    install
> libhtml-tree-perl    install
> libhtml-widget-perl    install
> libhttp-body-perl    install
> libhttp-request-ascgi-perl   install
> libhttp-server-simple-perl   install
> libio-compress-base-perl   install
> libio-compress-zlib-perl   install
> libio-multiplex-perl    install
> libio-pty-perl     install
> libio-stringy-perl    install
> libio-zlib-perl     install
> libipc-run-perl     install
> libipc-sharelite-perl    install
> libjson-any-perl    install
> libjson-perl     install
> liblingua-en-inflect-number-perl  install
> liblingua-en-inflect-perl   install
> liblocale-gettext-perl    install
> liblocale-maketext-lexicon-perl   install
> liblocale-maketext-simple-perl   install
> liblog-log4perl-perl    install
> libmailtools-perl    install
> libmime-types-perl    install
> libmodule-build-perl    install
> libmodule-find-perl    install
> libmodule-install-perl    install
> libmodule-pluggable-fast-perl   install
> libmodule-pluggable-perl   install
> libmodule-scandeps-perl    install
> libmoose-perl     install
> libmro-compat-perl    install
> libnet-cidr-perl    install
> libnet-daemon-perl    install
> libnet-dbus-perl    install
> libnet-dns-perl     install
> libnet-domain-tld-perl    install
> libnet-ip-perl     install
> libnet-server-perl    install
> libobject-signature-perl   install
> libossp-uuid-perl    install
> libpar-dist-perl    install
> libparams-util-perl    install
> libparams-validate-perl    install
> libparse-recdescent-perl   install
> libpath-class-perl    install
> libplrpc-perl     install
> librpc-xml-perl     install
> librrds-perl     install
> libscope-guard-perl    install
> libset-object-perl    install
> libsql-abstract-limit-perl   install
> libsql-abstract-perl    install
> libsub-exporter-perl    install
> libsub-install-perl    install
> libsub-name-perl    install
> libsub-uplevel-perl    install
> libtemplate-perl    install
> libtemplate-plugin-class-perl   install
> libtemplate-timer-perl    install
> libterm-readkey-perl    install
> libtest-exception-perl    install
> libtest-longstring-perl    install
> libtest-mockobject-perl    install
> libtest-use-ok-perl    install
> libtest-www-mechanize-perl   install
> libtext-charwidth-perl    install
> libtext-iconv-perl    install
> libtext-simpletable-perl   install
> libtext-wrapi18n-perl    install
> libtie-ixhash-perl    install
> libtimedate-perl    install
> libtree-simple-perl    install
> libtree-simple-visitorfactory-perl  install
> libuniversal-can-perl    install
> libuniversal-exports-perl   install
> libuniversal-isa-perl    install
> libuniversal-require-perl   install
> liburi-perl     install
> libversion-perl     install
> libwww-mechanize-perl    install
> libwww-perl     install
> libxml-parser-perl    install
> libxml-twig-perl    install
> libxml-writer-perl    install
> libyaml-perl     install
> perl      install
> perl-base     install
> perl-modules     install
>
>
> Obrigado,
>
> Walter Coan
> w.coan em terra.com.br
>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
"If you’ve never written anything thoughtful, then you’ve never had
any difficult, important, or interesting thoughts. That’s the secret:
people who don’t write, are people who don’t think."


More information about the SaoPaulo-pm mailing list