NAME

Carp::Parse - Parse a Carp stack trace into an array of caller information with parsed arguments.

DESCRIPTION

Carp produces a stacktrace that includes caller arguments; this module parses each line of the stack trace to extract its arguments, which allows rewriting the stack trace (for example, to redact sensitive information).

VERSION

Version 1.0.7

SYNOPSIS

# Retrieve a Carp stack trace with longmess(). This is tedious, but you will
# normally be using this module in a context where the stacktrace is already
# generated for you and you want to parse it, so you won't have to go through
# this step.
sub test3 { return Carp::longmess("Test"); }
sub test2 { return test3(); }
sub test1 { return test2(); }
my $stack_trace = test1();

# Parse the Carp stack trace.
use Carp::Parse;
my $parsed_stack_trace = Carp::Parse::parse_stack_trace( $stack_trace );

use Data::Dump qw( dump );
foreach my $caller_information ( @$parsed_stack_trace )
{
	# Print the arguments for each caller.
	say dump( $caller->get_arguments_list() );
}

FUNCTIONS

parse_stack_trace()

Parse a stack trace produced by Carp into an arrayref of Carp::Parse::CallerInformation objects.

my $parsed_stack_trace = Carp::Parse::parse_stack_trace( $stack_trace );

AUTHOR

Kate Kirby, <kate at cpan.org>.

Guillaume Aubert, <aubertg at cpan.org>.

BUGS

Please report any bugs or feature requests to bug-carp-parse at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Carp-Parse. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Carp::Parse

You can also look for information at:

ACKNOWLEDGEMENTS

Thanks to ThinkGeek (http://www.thinkgeek.com/) and its corporate overlords at Geeknet (http://www.geek.net/), for footing the bill while we eat pizza and write code for them!

COPYRIGHT & LICENSE

Copyright 2012 Kate Kirby & Guillaume Aubert.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/