2011-02-10 23 views
5

Mục tiêu của tôi là gỡ lỗi (từng bước) tập lệnh sample.pl bên dưới.Làm cách nào để xem giá trị của các biến từ một dấu vết Perl?

Vấn đề: Tôi không nhận được giá trị thực của các biến ($ top_number, $ x, $ total).

Câu hỏi của tôi: cách xem các giá trị số nguyên thực của ($ top_number, $ x, $ total) từ đầu ra dấu vết?

Điều gì cần thay đổi trong perl -d:Trace để nhận số điện thoại và không: $ top_number, $ x, $ total?

Ví dụ từ các dấu vết đầu ra:

[[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"; 

Trả lời

7

tôi giả sử bạn muốn xem các giá trị của các biến $x$total cho mỗi lần lặp qua các vòng lặp. Không có chỉ dẫn từ POD cho Devel::Trace rằng nó có thể làm điều đó.

Tuy nhiên, Devel::DumpTrace có thể.

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' đã được phát hành chỉ vài ngày trước. Hãy nhẹ nhàng và báo cáo bất kỳ lỗi nào bạn tìm thấy. :-) – mob

+0

@Mob đừng lo lắng tôi sẽ làm điều đó – jon

+0

@ hi một lần nữa tôi nhận được lỗi: perl -d: DumpTrace ./sampl.pl Không thể xác định vị trí PadWalker.pm trong @INC? lý do tại sao – jon

0

Hãy xem Variable::Magic. Nó có thể là một giải pháp cho biến "truy tìm".

+0

nhưng điều này có nghĩa rằng tôi cần phải chạy với perl -d? dù sao ? – jon

Các vấn đề liên quan