diff options
-rw-r--r-- | lib/Eval/Closure.pm | 2 | ||||
-rw-r--r-- | t/11-debugger.t | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/lib/Eval/Closure.pm b/lib/Eval/Closure.pm index 01e1411..74b64a4 100644 --- a/lib/Eval/Closure.pm +++ b/lib/Eval/Closure.pm @@ -106,7 +106,7 @@ sub eval_closure { $args{source} = _line_directive(@args{qw(line description)}) . $args{source} - if defined $args{description}; + if defined $args{description} && !($^P & 0x10); my ($code, $e) = _clean_eval_closure(@args{qw(source environment)}); diff --git a/t/11-debugger.t b/t/11-debugger.t new file mode 100644 index 0000000..7b97272 --- /dev/null +++ b/t/11-debugger.t @@ -0,0 +1,23 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use Test::Fatal; + +BEGIN { $^P |= 0x210 } # PERLDBf_SUBLINE + +use Eval::Closure; + +unlike( + exception { + eval_closure( + source => 'sub { $bar }', + description => 'foo', + ) + }, + qr/#line/, + "#line directive isn't added when debugger is active" +); + + +done_testing; |