[Israel.pm] Perl and Debugging question
Gaal Yahas
gaal at forum2.org
Sun May 13 21:50:38 EEST 2007
On 5/13/07, Peter Gordon <peter at pg-consultants.com> wrote:
> On this occasion, one of the elements is a string a few megabytes long,
> and I don't really want to dump the whole string.
>
> What would be the nicest way to suppress printing of this particular
> element.
>
> I could print each element in turn, but that is inelegant.
I'm afraid I don't have an elegant solution to offer. (A related
problem that does
have debugger support is deeply recursive structures. Saying "x 3
$that" limits to
depth 3 print.)
What you might do -- and I'm not saying this is significantly
different from printing each element in turn -- is add a to_debug
method to the object. This copies the object but only leaves a digest
version of the long string, say with the first 100 characters.
Not that I've searched CPAN for prior art, but you might want to make
this into a reusable module. (With Moose.pm or Perl 6, it would more
properly be a Role.) Something like:
package MyModuleWithLongMember;
use Debug::Dump::Digest qw(long_memb1 huge_memb2);
And then in the debugger:
x $self->to_debug;
--
Gaal Yahas <gaal at forum2.org>
http://gaal.livejournal.com/
More information about the Perl
mailing list