Bug found in Open Perl IDE perl5db.pl module

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Hello all.

I'm using this IDE since months, and have to say this is a good IDE,
light, simple, easy to use, but not bug-free ;-)

I found a subtle bug in perl5db.pl module (that is shipped with the
IDE for Windows available from SurceForge);

Trying this piece of script:

my $code = sub { print "hello\n" } ;
print "Let's call $code\n";
print "Done.\n";

During a normal debug session, moving the mouse over the variable
$code (that is a code-reference i.e. ref($code) returns CODE), the IDE
replies with an<undef>=94 which is not true. The same thing happens
listing $code in thevariable=94 watch-window.

I tried to fix it and patched the perl5db.pl module to handle this
case, so the IDE replies something like
=93$code: code = 0x1a81c40=94.

Since the module source is more than 700 lines long, I think useful
giving here the four chunks I added: I simply added another "elsif"
case just before the ending "else", so you should be able to insert
these few lines directly in your dbTemplate.txt in the correct

#within SizeOfDerefValue sub:
  } elsif ($refType eq 'CODE') {
    return length($reference);

#within ShortEval sub:
  } elsif ($refType eq 'CODE') {
    $reference =~ /\((.*)\)/;
    return "code = $1";

#within LongEval sub:
  } elsif ($refType eq 'CODE') {
      $reference =~ /\((.*)\)/;
      $retValue = "code = $1";

#within ShowDerefValues sub:
  } elsif ($refType eq 'CODE') {
    $type = "code";
    $reference =~ /\((.*)\)/;
    $value = "$1";

I hope this helps.


Re: Bug found in Open Perl IDE perl5db.pl module

Quoted text here. Click to load it

You might want to post this on Sourceforge if that's where the project
is located.


Site Timeline