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?
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|