[Cascavel-pm] "Debugando" debugando o perl
Alceu R. de Freitas Jr.
glasswalk3r em yahoo.com.br
Sexta Setembro 30 07:30:17 PDT 2005
--- Hamilton Vera <hamilton em seven.com.br> escreveu:
> Gostaria de saber qual a melhor a maneira de
> "debugar" um programa em perl.
perl -d seuscript.pl é a forma básica.
Se não me engano existe algum programa em Tk que ajuda
a debugar CGI's. Você pode usar o debugger em linha de
comando para debugar CGI's também, mas é ruim de usar.
> Geralmente quando pego scripts de terceiros e não
> sei o porque o retorno
> é diferente do que eu esperava, abro o código e vou
> inserindo alguns prints:
>
> print "Entrando em tal rotina\n"
Isso é útil se você está querendo olhar um código
pequeno. Se você quer ver estruturas de dados
complexas, use o Data::Dumper. Dentro do debugger você
pode usar o comando "x" <variável> e ver o ela
guarda... isso vale tanto para variáveis escalares
quanto para objetos em Perl.
> Assim consigo saber onde que houve o "problema".
Dê uma lida na documentação sobre o debugger. Ele
ajuda um bocado... talvez seja um pouco assustador se
você não está acostumado a usar uma interface em
texto, mas ele é muito poderoso e dá de 10 a 0 no
debugger em linha de comando do Java (que aliás, quase
ninguém conhece).
> Uma outra dúvida, aproveitando que a lista está
> parada. Seria o perl um
> paradigma entre o compilado e o interpretado?
> Qual resposta devo dar quando alguém pergunta "Perl
> é compilado ou
> interpretado?", na dúvida eu falo "Ambos"
Assim como Java, Perl gera bytecodes. Depois esses
bytecodes são interpretados por sua máquina virtual. É
possível evitar o processo de criação do bytecode
usando o perlcc... mas teoricamente isso não ajuda a
ter melhor performance... talvez ajude se seu script
não importa nenhum módulo, o que é meio difícil
diga-se de passagem.
> Lembro que no "Programming Perl" dizia que Perl era
> compilado (creio que
> li isso, acho que até mencionava que o programa era
> compilado primeiro para depois se passado para o
> interpretador), mas na
> faculdade meu professor
> fez pouco caso falando que Perl era interpretado....
Vá lá e ensine seu professor a aprender algo antes de
sair falando bobagens... eu já peguei gente com
experiência larga em UNIX e C falando bobagem de Perl
simplesmente porque nunca tentou usar.
[]'s
Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1
_______________________________________________________
Novo Yahoo! Messenger com voz: ligações, Yahoo! Avatars, novos emoticons e muito mais. Instale agora!
www.yahoo.com.br/messenger/
Mais detalhes sobre a lista de discussão Cascavel-pm