2011-02-10 14 views
5

Il mio obiettivo è eseguire il debug (passo dopo passo) dello script sample.pl qui sotto.Come posso vedere i valori delle variabili da una traccia Perl?

Il problema: non ottengo i valori reali delle variabili ($ numero_casso, $ x, $ totale).

La mia domanda: come visualizzare i valori interi reali di ($ top_number, $ x, $ totale) dall'output di traccia?

Cosa deve essere modificato in perl -d:Trace per ottenere i numeri e non: $ numero_casso, $ x, $ totale?

Esempio dal output di analisi:

[[email protected] /tmp]# perl -d:Trace ./sample.pl 
>> ./sampl.pl:9: $top_number = 100; 
>> ./sampl.pl:10: $x = 1; 
>> ./sampl.pl:11: $total = 0; 
>> ./sampl.pl:12: while ($x <= $top_number) { 
>> ./sampl.pl:13:  $total = $total + $x; # short form: $total += $x; 
>> ./sampl.pl:14:  $x += 1;    # do you follow this short form? 
>> ./sampl.pl:13:  $total = $total + $x; # short form: $total += $x; 
>> ./sampl.pl:14:  $x += 1;    # do you follow this short form? 
>> ./sampl.pl:13:  $total = $total + $x; # short form: $total += $x; 
>> ./sampl.pl:14:  $x += 1;    # do you follow this short form? 
. 
. 

[[email protected] /tmp]#more sample.pl script 

#!/usr/bin/perl 


$top_number = 100; 
$x = 1; 
$total = 0; 
while ($x <= $top_number) { 
    $total = $total + $x; # short form: $total += $x; 
    $x += 1;    # do you follow this short form? 
} 

print "The total from 1 to $top_number is $total\n"; 

risposta

7

suppongo si desidera visualizzare i valori delle variabili $x e $total per ogni iterazione del ciclo. Non c'è alcuna indicazione dal POD per Devel::Trace che possa farlo.

Tuttavia, Devel::DumpTrace can.

perl -d:DumpTrace ./sample.pl 

>>>>> hw.pl:7:  $top_number:100 = 100; 
>>>>> hw.pl:8:  $x:1 = 1; 
>>>>> hw.pl:9:  $total:0 = 0; 
>>>>> hw.pl:10:  while ($x:1 <= $top_number:100) { 
>>>>> hw.pl:11:   $total:1 = $total:0 + $x:1; # short form: $total:0 += $x:1; 
>>>>> hw.pl:12:   $x:2 += 1;    # do you follow this short form? 
>>>>> hw.pl:11:   $total:3 = $total:1 + $x:2; # short form: $total:1 += $x:2; 
>>>>> hw.pl:12:   $x:3 += 1;    # do you follow this short form? 
>>>>> hw.pl:11:   $total:6 = $total:3 + $x:3; # short form: $total:3 += $x:3; 
+1

'Devel :: DumpTrace' è stato rilasciato pochi giorni fa. Sii gentile e segnala eventuali bug che trovi. :-) – mob

+0

@Mob non ti preoccupare lo farò io – jon

+0

@ hi di nuovo ho ricevuto l'errore: perl -d: DumpTrace ./sampl.pl Impossibile individuare PadWalker.pm in @INC? perché – jon

0

Dai uno sguardo allo Variable::Magic. Potrebbe essere una soluzione per la "tracciatura" variabile.

+0

ma questo significa che devo eseguire con perl -d? Comunque ? – jon

Problemi correlati