[SP-pm] Interpretando JavaScript com uma Biblioteca Perl [Was: Este Silêncio Me Assusta...]

Luis Motta Campos luismottacampos em yahoo.co.uk
Terça Junho 17 05:16:10 PDT 2008


André Garcia Carneiro wrote:
> - Lendo o documento de especificação de JavaScript. O objetivo final
> é dar um motor de javascript para perl capaz de se integrar com
> WWW::Mechanize, e resolver problemas extremamente chatos, por não ter
> suporte a JavaScript.

Eu já tinha te prometido ajudar com isso, não? Olha, aqui tem a ajudinha
que eu posso dar agora... :) espero que não sobre muito do seu problema
para esmagar, triturar, e reduzir a pedacinhos.

O artigo (http://www.perlmonks.org/?node_id=666236) aponta para o módulo
JavaScript no CPAN
(http://search.cpan.org/~claesjac/JavaScript-1.04/lib/JavaScript.pm),
que é um interpretador completo, OO, implementado em Perl. A julgar pela
versão (1.04), deve ser estável.

Como alternativa, você pode usar a implementação do SpiderMonkey, via
biblioteca JavaScript::SpiderMonkey
(http://search.cpan.org/~tbusch/JavaScript-SpiderMonkey-0.19/SpiderMonkey.pm),
que faz a mesma coisa, mas com backend em C.

E a implementação que você quer para o WWW:Mechanize já existe, é o
WWW::Mechanize::Plugin::JavaScript
(http://search.cpan.org/perldoc?WWW%3A%3AMechanize%3A%3APlugin%3A%3AJavaScript),
e depende do módulo JavaScript (mencionado anteriormente).

Existe também uma alternativa: o Mozilla::Mechanize
(http://search.cpan.org/~slanning/Mozilla-Mechanize-0.05/lib/Mozilla/Mechanize.pm)
diz que pode fazer tudo o que seu browser faz, mas dentro do código do
teu programa Perl.

No windows, você ainda tem como alternativa usar o IE para interpretar
Javascript, com a biblioteca Win32::IE::Mechanize
(http://search.cpan.org/~abeltje/Win32-IE-Mechanize-0.009/lib/Win32/IE/Mechanize.pm),
do Abel Timmerman, aqui do NL-PM. Suporte técnico de altíssimo nível
garantido com umas cervejinhas (ele gosta de heineken).

Para terminar, esta página
(http://ejohn.org/blog/spicing-up-embedded-javascript/) ensina como
integrar JavaScript::SpiderMonkey com Perl, vale dar uma olhada.

Putamplexos!
-- 
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}


Mais detalhes sobre a lista de discussão SaoPaulo-pm