Ovid has asked for the wisdom of the Perl Monks concerning the following question:
I need to profile some code, but I've discovered that the program behaves differently when using Devel::DProf. Below is my test case and the ouput. I've duplicated this bug with Perl 5.8.0 on two computers, both running RH Linux. I'll send this off to P5P if it's not a known issue, but in the meantime, have I missed something?
#!/usr/bin/perl use strict; parse(1,0); sub parse { while (defined(my $number = shift)) { print "Number: $number\n"; &parse if $number; } }
And the results:
$ perl test.pl Number: 1 Number: 0 $ perl -d:DProf test.pl Number: 1 Number: 0 Number: 0
By changing the recursive call to parse() to the following:
parse(@_) if $number;I get the following results:
$ perl test.pl Number: 1 Number: 0 Number: 0 $ perl -d:DProf test.pl Number: 1 Number: 0 Number: 0
However, that looks like both versions are wrong because somehow the final zero is getting read twice by shift. What am I missing?
Cheers,
Ovid
New address of my CGI Course.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Bug in Devel::DProf?
by Abigail-II (Bishop) on Aug 15, 2003 at 22:22 UTC | |
|
Re: Bug in Devel::DProf?
by fletcher_the_dog (Friar) on Aug 15, 2003 at 21:07 UTC | |
|
Re: Bug in Devel::DProf?
by antirice (Priest) on Aug 15, 2003 at 21:05 UTC |