[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