in reply to Perlish Debugging Style

Have you looked at Smart::Comments?

C:\test>perl use strict; use warnings; use XML::Simple; use Smart::Comments; sub process_data{ return @_ } sub send{ ### Entering send... ### Exiting send... } my $struct = XMLin('test.xml'); ### $struct if (defined $struct) { my $result_set = process_data($struct); ### $result_set &send($result_set); } ^Z ### $struct: { ### base => 'http://www.google.com' ### } ### $result_set: 1 ### Entering send... ### Exiting send...

It even loads Data::Dumper for you, and to completely remove all the debug code, you simple comment out the use Smart::Commant; line. It does a whole lot more besides and avoids the problems with heredocs and the __DATA__ section.

I'm not keen on it retaining the ### marks in the output, and I would prefer a simple numeric argument to indicate which levels I want traced, but it's (IMO) the perfect use for source filters.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.