Estava testando o modulo do CPAN Javascript e tal e quando precisei executar o arquivo deu esse erro<br>ReferenceError: document is not defined at line 9: (null)<br>Esse erro é que preciso de alguma forma, acredito eu, executar alguma simulação de navegador junto cmo o module JavaScript. Me deem um help se puderem ou quem souber... qq coisa me add 
<a href="mailto:roanbrasil@gmail.com">roanbrasil@gmail.com</a> para trocar ideia sobre isso.<br><br><br><span style="font-weight: bold;">ABAIXO CODE PERL: PS -&gt; esse código é só um teste para entender como ele funciona com o javascript que quero.
</span><br style="font-weight: bold;"><span style="font-weight: bold;">Alguem me da um help?</span><br style="font-weight: bold;"><span style="font-weight: bold;">desculpem mesmo</span><br><br><br>#!/usr/bin/perl<br>use strict;
<br><br>use JavaScript;<br>use LWP::Simple;<br>use LWP::UserAgent;<br><br>my $ua = LWP::UserAgent-&gt;new;<br><br>$ua-&gt;agent(&#39;Mozilla/5.0&#39;);<br><br>#my $string = get(&#39;<a href="http://www.rumo.com.br/sistema/categorias.asp?IDLoja=1124&#39;">
http://www.rumo.com.br/sistema/categorias.asp?IDLoja=1124&#39;</a>);<br><br>#my $string = $ua-&gt;get(&#39;<a href="http://www.rumo.com.br/sistema/LojaSite.js&#39;">http://www.rumo.com.br/sistema/LojaSite.js&#39;</a>);<br>
<br>#my $string2 = &quot;try{if(document.domain.indexOf(&#39;<a href="http://fastcommerce.com.br">fastcommerce.com.br</a>&#39;)&gt;=0){document.domain=&#39;fastcommerce.com.br&#39;;}if(document.domain.indexOf(&#39;<a href="http://rumo.com.br">
rumo.com.br</a>&#39;)&gt;=0){document.domain=&#39;rumo.com.br&#39;;}}catch(e){}&quot;;<br><br><br>#my $string3 =$ua-&gt;get(&#39;<a href="http://www.rumo.com.br/lojas/00001124/htm/JurosParcelas.js&#39;">http://www.rumo.com.br/lojas/00001124/htm/JurosParcelas.js&#39;
</a>);<br><br>my $string5 = &lt;&lt;&#39;JSCRIPT&#39;;<br><br>//Informe abaixo os juros para parcelamento em 1x, 2x, 3x, etc.<br>var Juros=new Array(0,2.98,2.98,2.98,2.98,2.98,2.98,2.98,2.98,2.98);<br><br>function MostraMaxParcela(PrecoProd,MaxParcelas){
<br>&nbsp; var ComSem;<br>&nbsp; if(PrecoProd==0||MaxParcelas==1||Juros.length==0)return;<br>&nbsp; if(MaxParcelas==0||MaxParcelas&gt;Juros.length)MaxParcelas=Juros.length;<br>&nbsp; if(Juros[MaxParcelas-1]&gt;0)ComSem=&quot;&quot;; else ComSem=&quot;&lt;font color=#DD0000&gt;&amp;nbsp;sem&amp;nbsp;juros&lt;/font&gt;&quot;;
<br>&nbsp; document.write(&quot;ou&amp;nbsp;&lt;b&gt;&quot;+MaxParcelas+&quot;x&lt;/b&gt;&quot;+ComSem+&quot; de&amp;nbsp;&lt;b&gt;&quot;+FormatPrecoReais(CalculaParcelaJurosCompostos(PrecoProd,MaxParcelas))+&quot;&lt;/b&gt;&quot;);
<br>}<br><br><br>function MostraParcelas(PrecoProd,MaxParcelas){<br>&nbsp; var ComSem,EstiloLinha;<br>&nbsp; if(PrecoProd==0||MaxParcelas==1||Juros.length==0)return;<br>&nbsp; if(MaxParcelas==0||MaxParcelas&gt;Juros.length)MaxParcelas=Juros.length
;<br>&nbsp; document.write(&quot;&lt;br&gt;&lt;table cellpadding=3 width=350&gt;&lt;tr bgcolor=#DCDCDC&gt;&lt;td colspan=4 height=22 class=TitTabParc align=center&gt;&lt;b&gt;Opções de parcelamento&lt;/td&gt;&lt;/tr&gt;&lt;tr bgcolor=#FFFFFF&gt;&lt;td class=TitTabParc&gt;Número de parcelas&lt;/td&gt;&lt;td align=right class=TitTabParc&gt;Valor&amp;nbsp;de&lt;br&gt;cada&amp;nbsp;parcela&lt;/td&gt;&lt;td align=right class=TitTabParc&gt;Valor total parcelado&lt;/td&gt;&lt;td align=right class=TitTabParc&gt;Juros&lt;br&gt;% 
a.m.&lt;/td&gt;&lt;/tr&gt;&quot;);<br>&nbsp; for(var i=0;i&lt;MaxParcelas;i++){<br>&nbsp;&nbsp;&nbsp; if(Juros[i]&gt;0)ComSem=&quot;com juros&quot;; else ComSem=&quot;&lt;font color=#DD0000&gt;sem&amp;nbsp;juros&lt;/font&gt;&quot;;<br>&nbsp;&nbsp;&nbsp; if((i%2)==0)EstiloLinha=&#39;EstParcPar&#39;; else EstiloLinha=&#39;EstParcImpar&#39;;
<br>&nbsp;&nbsp;&nbsp; document.write(&quot;&lt;tr class=&quot;+EstiloLinha+&quot;&gt;&lt;td class=&quot;+EstiloLinha+&quot;&gt;&quot;+(i+1)+&quot;x &quot;+ComSem+&quot;&lt;/td&gt;&lt;td class=&quot;+EstiloLinha+&quot; align=right&gt;&quot;+FormatPrecoReais(CalculaParcelaJurosCompostos(PrecoProd,i+1))+&quot;&lt;/td&gt;&lt;td class=&quot;+EstiloLinha+&quot; align=right&gt;&quot;+FormatPrecoReais(CalculaParcelaJurosCompostos(PrecoProd,i+1)*(i+1))+&quot;&lt;/td&gt;&lt;td align=right class=&quot;+EstiloLinha+&quot; &gt;&quot;+FormatJuros(Juros[i])+&quot;&lt;/td&gt;&lt;/tr&gt;&quot;);
<br>&nbsp;}<br>&nbsp; document.write(&quot;&lt;/table&gt;&lt;br&gt;&quot;);<br>}<br><br>function FormatJuros(num){<br>&nbsp; num=num.toString().replace(/\$|\,/g,&#39;&#39;);<br>&nbsp; if(isNaN(num))num=&quot;0&quot;;<br>&nbsp; sign=(num==(num=Math.abs
(num)));<br>&nbsp; num=Math.floor(num*100+0.50000000001);<br>&nbsp; cents=num%100;<br>&nbsp; num=Math.floor(num/100).toString();<br>&nbsp; if(cents&lt;10)cents=&quot;0&quot;+cents;<br>&nbsp; for(var i=0;i&lt;Math.floor((num.length-(1+i))/3);i++)num=
num.substring(0,num.length-(4*i+3))+&#39;.&#39;+num.substring(num.length-(4*i+3));<br>&nbsp; if(num==0&amp;&amp;cents==0)return &#39;0%&#39;; else return ((sign)?&#39;&#39;:&#39;-&#39;)+&#39;&amp;nbsp;&#39;+num+&#39;,&#39;+cents+&#39;%&#39;;
<br>};<br><br>JSCRIPT<br><br>my $string6 = &#39;MostraMaxParcela(1429.99,0);&#39;;<br>#print $string5; exit 0;<br>my $rt = JavaScript::Runtime-&gt;new();<br>my $cx = $rt-&gt;create_context();<br><br><br><br>&nbsp; $cx-&gt;bind_function(name =&gt; &#39;write&#39;, func =&gt; sub { print @_;});
<br>&nbsp; $cx-&gt;eval(&quot;$string5 $string6 &quot;);<br>&nbsp; <br>&nbsp;<br><br>=for<br>&nbsp; $cx-&gt;eval(q/<br>&nbsp;&nbsp;&nbsp; for (i = 99; i &gt; 0; i--) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(i + &quot; bottle(s) of beer on the wall, &quot; + i + &quot; bottle(s) of beer\n&quot;);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(&quot;Take 1 down, pass it around, &quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (i &gt; 1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write((i - 1) + &quot; bottle(s) of beer on the wall.&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write(&quot;No more bottles of beer on the wall!&quot;);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; /);<br>=cut<br><br>__END__<br>my $string4 = &#39;function MostraChat() {<br>&nbsp;popup=window.open(&quot;<a href="http://www.rumo.com.br/sistema/ChatLogin.asp?IDLoja=1124&amp;Y=377647088236">http://www.rumo.com.br/sistema/ChatLogin.asp?IDLoja=1124&amp;Y=377647088236
</a>&quot;,&quot;Chat275&quot;,&quot;top=20,left=20,height=280,width=390,scrollbars=no,resizable=yes&quot;);<br>&nbsp;popup.focus();<br>&nbsp;return void(0);<br>}&#39;;<br><br><br><br><br><div><span class="gmail_quote">Em 24/01/07, 
<b class="gmail_sendername">roan Brasil</b> &lt;<a href="mailto:roanbrasil@gmail.com">roanbrasil@gmail.com</a>&gt; escreveu:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Valeu Luiz vou testar e lhe dou um feed back... abraços<br><br><div><span class="gmail_quote">Em 24/01/07, <b class="gmail_sendername">Luis Motta Campos</b> &lt;<a href="mailto:luismottacampos@yahoo.co.uk" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
luismottacampos@yahoo.co.uk
</a>&gt; escreveu:</span><div><span class="e" id="q_1105429878efd403_1"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">On Jan 24, 2007, at 1:03 PM, roan Brasil wrote:
<br>&gt;<br>&gt; Olá galera,
<br>&gt;<br>&gt; Eu trabalho com Spider e gostaria de uma dica pode ser?<br>&gt; Bom ao fazer Spider existem algumas coisas que não consigo coletar<br>&gt; pois é em javascript. É uma função que passa o parametro do preco
<br>&gt; de um produto e retorna a quantidade máxima de parcelas com juros e<br>&gt; sem juros. Como posso &quot;simular&quot; quando eu chamo a home page o<br>&gt; javascript ou &quot;roda-lo&quot;? Alguém pode me ajudar?
<br>&gt; Resumindo é isso... quem puder me ajudar e ainda tiver dúvida me<br>&gt; pergunte pois preciso resolver esse problema e estava conversando<br>&gt; com Joenio e ele sugeriu mandar para a lista para ver se alguém me
<br>&gt; ajudaria...<br>&gt;<br><br>&nbsp;&nbsp; Fácil. &quot;use JavaScript;&quot;.<br>&nbsp;&nbsp; Mas instale o módulo primeiro:<br><br>&nbsp;&nbsp; <a href="http://search.cpan.org/%7Eclaesjac/JavaScript-1.00/lib/JavaScript.pm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://search.cpan.org/~claesjac/JavaScript-1.00/lib/JavaScript.pm
</a><br><br>&nbsp;&nbsp; E prometa para mim que você sempre vai respeitar restrições<br>codificadas no robots.txt (<a href="http://en.wikipedia.org/wiki/Robots.txt" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://en.wikipedia.org/wiki/Robots.txt</a>),<br>e que você vai manter o nível ético e moral da sua profissão
<br>elevado. ;-)<br><br>&nbsp;&nbsp; Putamplexos, e boa diversão.<br>--<br>Luis Motta Campos is software engineer,<br>perl fanatic evangelist, and amateur {cook, photographer}<br><br><br>_______________________________________________
<br>Cascavel-pm mailing list<br><a href="mailto:Cascavel-pm@pm.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Cascavel-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></blockquote></span></div></div>
<br><br clear="all"><div><span class="e" id="q_1105429878efd403_3"><br>-- <br>Atenciosamente,<br><br>Roan Brasil Monteiro<br>Presidente do Rotaract Club Lauro de Freitas D4550<br>Gestão 2006/2007<br>________________________________
<br>*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*
<br>Faculdade UNIME<br><a href="http://www.unime.com.br" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">www.unime.com.br</a><br>BSI - Bacharelado de Sistema de Informação<br>Roan Brasil Monteiro <br>
_____________________<br>*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*<br><br>
&quot;NA LUTA ENTRE BATMAN E PINGÜIM,<br>EU SOU MAIS O PINGÜIM...&quot; by Roan<br>____<br> °v°&nbsp;&nbsp; NÃO USE DROGAS,<br>/(_)\&nbsp;&nbsp;USE GNU/LINUX<br> ^ ^<br>Por que ver o MUNDO através de &#39;janelas&#39;<br>Se você pode usar portas.
<br><br>&quot;Software Livre:<br>&nbsp;&nbsp;&nbsp;&nbsp;Socialmente Justo,<br>&nbsp;&nbsp;&nbsp;&nbsp;Economicamente Viável,<br>&nbsp;&nbsp;&nbsp;&nbsp;Tecnologicamente Sustentável&quot;

</span></div></blockquote></div><br><br clear="all"><br>-- <br>Atenciosamente,<br><br>Roan Brasil Monteiro<br>Presidente do Rotaract Club Lauro de Freitas D4550<br>Gestão 2006/2007<br>________________________________<br>
*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*<br>Faculdade UNIME<br><a href="http://www.unime.com.br">www.unime.com.br</a><br>BSI - Bacharelado de Sistema de Informação<br>Roan Brasil Monteiro <br>_____________________<br>*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*,*-*
<br><br>&quot;NA LUTA ENTRE BATMAN E PINGÜIM,<br>EU SOU MAIS O PINGÜIM...&quot; by Roan<br>____<br> °v°&nbsp;&nbsp; NÃO USE DROGAS,<br>/(_)\&nbsp;&nbsp;USE GNU/LINUX<br> ^ ^<br>Por que ver o MUNDO através de &#39;janelas&#39;<br>Se você pode usar portas.
<br><br>&quot;Software Livre:<br>&nbsp;&nbsp;&nbsp;&nbsp;Socialmente Justo,<br>&nbsp;&nbsp;&nbsp;&nbsp;Economicamente Viável,<br>&nbsp;&nbsp;&nbsp;&nbsp;Tecnologicamente Sustentável&quot;