http://www.perlmonks.org?node_id=886909


in reply to Re^3: Multiple perl interpreters and Module::Runtime (&)
in thread Multiple perl interpreters and Module::Runtime

How does it crash?
Sorry, I should have been more specific.

The program crashes with SEGFAULT after executing this line (Exporter.pm, line 64):

64: *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_;

\&... would never do what &... does. \&... takes a reference to a subroutine while &... invokes a subroutine. So what &{"$pkg\::$_"} does is rather irrelevant. It is indeed unfortunate that Params::Classify::is_string() stupidly produces an endless recursive loop when not given any parameters. But that likely has nothing to do with your original problem.

Indeed, you are right. However the expression \&{"$pkg\::$_"} entered into the perl debugger yields the same result - SEGFAULT crash.

I've been trying to find the part of the line 64 that causes problems - and it shows that the bad part is the expression \&{"$pkg\::$_"}. Perl somehow cannot correctly resolve the function Params::Classify::is_string.

My previous post followed with a GDB backtrace generated from the core dump of the crashed program. It shows where exactly the segfaulted.

Btw. have you tried that program? Does it work on your computer?