[Cascavel-pm] Re: Exemplo de ^$
Luis Champs de Carvalho
monsieur_champs em yahoo.com.br
Quinta Julho 1 11:32:40 CDT 2004
On Wed, 30 Jun 2004, Solli Moreria Honorio wrote:
> Luis, estou enviando uma fração do módulo Win32::SAM
> (http://sourceforge.net/projects/samie) no qual estou tentando utilizar
> para simular o usuário utilizando o site através do IE, isto é para
> detectar falha e/ou efetuar um teste de carga.
>
> Fiquei impressionado pela quantidade de vezes que o cara utiliza
> expressões do tipo ‘^$valor$’. E o que é pior, algumas vezes este
> esquema só atrabalha, como em um caso onde eu digo o nome de uma figura
> para o cara clicar, pelo código do cara eu preciso entrar com o caminho
> completo (inclusive http://) da imagem... claro que já mudei.
>
> Como eu havia escrito, o meu cerebro não compreendia o que os meus olhos
> envia... seria algum tipo de disturbio ? Comecei a me perguntar... mas
> descubri depois que se existe alguns disturbio não é o meu.
>
> Só estou enviando para você isto, para você não achar que sou louco ou
> algo pior. Claro que não está na lista porque este assunto já está over.
>
Solli, IMHO, mandar para o pessoal da lista pode ajudar muita gente a
aprender como fazer para que as coisas funcionem direito... por isso estou
respondendo sua mensagem direto para a lista.
PessoALL, a mensagem do Solli está inteira aqui, sem cortes. Por isso,
existem trechos bem grandes sem qualquer comentário meu. Desculpem por
isso, foi a forma mais simples que eu encontrei de colocar vocês à par do
que acontece... :-)
Vamos ao fonte:
> sub ClickAClassNameHyperlink
> {
> my $className = shift @_;
> my $IEObject;
> my $IEDocument;
> my $i;
> my $IEObjectGroup;
> #print "Inside ClickAclassNameHyperlink\n";
> foreach $IEObjectGroup (@AllIEObjects)
> {
> foreach $IEObject (@$IEObjectGroup)
> {
> #print "Here's \$IEObject$IEObject\n";
> $IEDocument = $IEObject->{Document};
> for ($i=0; $i<$IEDocument->all->length; $i++)
> {
> #print "Outer for $i " . $IEDocument->all($i)->tagName . "\n";
> if ($IEDocument->all($i)->tagName =~ /^A$/)
Reparem neste "IF" (na linha acima): ele poderia simplesmente ter usado
um 'eq', com o mesmo valor semântico, e muito mais simples de ler e
executar. TIMTOWTDI, certamente usado contra o programa... :-/
> {
> #print "Found A\n";
> #print "Printing className: " .
> $IEDocument->all($i)->className . "\n";
> if ($IEDocument->all($i)->className =~ /^$className$/)
Aqui, (na linha de cima) novamente o mesmo problema...
Solli, se isso for endêmico do jeito que você está dizendo, pode ser
interessante oferecer um patch para o carinha... :-)
> {
> #print "Clicking $className\n";
> $IEDocument->all($i)->click();
> return;
> }
> }
> }
> }
> }
> }
>
Este finalzinho me lembrou uma piadinha de LISP... ;-)
Segue abaixo:
From: monsieur_champs
To: Lista de Amigos
Subject: Programa Lisp para dominar o mundo
Eu consegui! Terminei o programa Lisp que me ajudará a conquistar o
mundo! Todas as grandes potências da Terra estarão aos meus pés quando eu
rodar o programa.
Renda-se você também, e me envie todo o dinheiro que conseguir
arrecadar.
Para provar que eu não estou brincando, envio o final do programa para
vocês:
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
# EOF
Claro, quem não programa Lisp pode não achar muita graça nesta piada
velha... :-)
[]'z!
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Luis Campos de Carvalho is BSc in Comp Science,
PerlMonk [SiteDocClan], Cascavel-pm Moderator,
Unix Sys Admin && Certified Oracle DBA
http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mais detalhes sobre a lista de discussão Cascavel-pm