[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