The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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/