Andernfalls wird beim Aufruf von z.B. »SL::Controller::CustomerVendor →
LXDebug::dump() → LXDebug::message()« fälschlicherweise
»LXDebug::dump()« als Caller ausgegeben. Das interessiert die Nutzer*in
aber im Zweifelsfall nicht, sondern »SL::Controller::CustomerVendor«.
my @prefixes = ($prefix);
if ($options{show_caller}) {
- my ($package, $filename, $line, $subroutine) = caller(1);
- push @prefixes, "${filename}:${line}";
+ my $level = 1;
+ while (1) {
+ my ($package, $filename, $line, $subroutine) = caller($level);
+
+ if (($filename // '') =~ m{LXDebug\.pm$}) {
+ $level++;
+ next;
+ }
+
+ push @prefixes, "${filename}:${line}";
+ last;
+ }
}
$prefix = join ' ', grep { $_ } @prefixes;