in reply to Embedded perl: allowing 'exit' in eval_pv without exiting C program
die should be used in that situation.
But let's say you can't edit the Perl code. Instead of evaluating the code directly, call myeval (defined below) with the the string to evaluate as an argument.
our $override_exit = 0; BEGIN { *CORE::GLOBAL::exit = sub(;$) { no warnings qw( exiting ); last EXIT_OVERRIDE if $override_exit; CORE::exit($_[0] // 0); }; } sub myeval { my $exit_was_called = 1; EXIT_OVERRIDE: { local $override_exit = 1; eval($_[0]); die $@ if $@; $exit_was_called = 0; } die("Exit called\n") if $exit_was_called; }
Seeking work! You can reach me at ikegami@adaelis.com
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Embedded perl: allowing 'exit' in eval_pv without exiting C program
by daveola (Sexton) on Mar 27, 2021 at 21:49 UTC | |
by ikegami (Patriarch) on Mar 29, 2021 at 20:03 UTC |