On Sat, 23 Dec 2017 07:56:23 GMT, zefram@fysh.org wrote: > Danijel Tasov wrote: > >use overload > >'eq' => \&equals_to, > ... > >sub equals_to{ $_[0] eq $_[1] } > > Here's your problem you've defined the "eq" overload to apply "eq" to > its operands, which invokes the "eq" overload in an infinite recursion. > The segv is just C stack overflow. You probably want to write the "eq" > overload as > > sub equals_to{ "$_[0]" eq $_[1] } > > or just remove that overload and enable overload fallback, so that Perl > will synthesise that "eq" overload for you. > > There is no Perl bug here. > > -zefram There may not be a bug in perl here -- but there's certainly a deficiency in our documentation. I've been writing Perl for a long time but have never had occasion to 'use overload'. I stared at the original poster's code and couldn't see anything obviously wrong. I then went and read the documentation. Again, I couldn't find anything that would lead me to guess that the OP's code would segfault. So we have to improve the documentation. Otherwise, people will repeatedly stumble into this problem. How should we change the docs? Thank you very much. -- James E Keenan (jkeenan@cpan.org) --- via perlbug: queue: perl5 status: open https://rt.perl.org/Ticket/Display.html?id=132638Thread Previous | Thread Next