package bbb; use strict; use warnings; use Data::Dumper; $Data::Dumper::Indent = 0; my @params = qw( package filename line subroutine hasargs wantarray evaltext is_require hints bitmask ); for ( my $cx = 0; caller $cx; ++ $cx ) { my %caller; @caller{@params} = map +( defined() ? $_ : 'undef' ), do { package DB; # see perldebguts for this magic. caller $cx }; print( "CX=$cx\n", join( '', map " $_=$caller{$_}\n", @params ), $caller{hasargs} ? " ARGS=" . Dumper( @DB::args ) . "\n" : () ); } 1;