in reply to DialogBox vs. XDialogBox

First thing you can do is just hack the installed copy -- find the Tk/DialogBox.pm or Tk/XDialogBox.pm files on your system, and edit (just save a backup to copy back in). (Note this doesn't work for XS modules, where the real code is compiled c)

Second, you can contact the author (see module docs for best way -- email and/or a tracker or email list) w/the issue and a patch (do supply a test/example case and a patch to make it easiest for the author).

If the original module doesn't end up being patch, you can always subclass the module to alter its behavior, either in its own file or just inline:
package My::Tk::DialogBox; use base qw/Tk::DialogBox/; sub Show { # your version of Show() here. } package main; my $dialogbox = My::Tk::DialogBox->new( ... );
Can also just override it like this (it will throw a warning)
package Tk::DialogBox; sub Show { # your version of Show() here. } package main; my $dialogbox = Tk::DialogBox->new( ... );
These last two aren't preferrable solutions though, because it can (will?) break w/an upgrade of the original module.