http://qs1969.pair.com?node_id=11137898

byrnejb has asked for the wisdom of the Perl Monks concerning the following question:

I am not a perl programmer. I do have to maintain a legacy perl application. Something has changed in the environment so that it no longer correctly reports the status of public key certificates. I need to discover what that change is and how to accommodate it. The critical piece of code appears to be:
sub genHTMLTableRow { my $self = shift; my $args = shift; my $e = shift; my $ser = $e->{serial}; my $pem = $ser.'.html'; . . .
What I wish to do for debugging purposes is to dump the actual contents of $self, $args, and $e. I tried the naive approach of using print "$self\n"; but that just gave me this:
CSP=HASH(0x800b1e060)
I tried to use the map function
print map { "Key: $_ has Value:$self{$_}\n" } keys $self;
I clearly do not understand the naming conventions of perl variables as this usage of map causes the error:
Global symbol "%self" requires explicit package name (did you forget + to declare "my %self"?) at /root/bin/rcsp/blib/lib/CSP.pm line 861
What is the perl way of displaying the contents of $self, $args, and $e?